forked from busrauman/lyk2015_php-oop
/
index.php
106 lines (81 loc) · 3.76 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<meta charset="UTF-8">
<?php
// kurutemizleme sınıfı
// kirli çamaşırlar verilip temizlenmiş olarak istenir
// teslim almak
// yıkamak, kirli çamaşır, deterjan
// kurulamak, yıkanmış çamaşırlar (ıslak)
// ütülemek, kurumuş çamaşırlar
// teslim etmek
class KuruTemizleme{
// sınıf içinde kullanılacak çamaşırı sadece sınıflar içinde kullanılacak şekilde tanımlıyoruz
protected $camasir;
// sınıf içinde çağırılacak ama hiçbir zaman değişmeyecek sabiti tanımlıyoruz
const deterjan = "Ariel";
// sınıf kurulduğunda, çalıştırılmadan önce çağırılan kısmı yazıyoruz
function __construct(){
// sınıf kurulurken çalışan kısım
echo "Kuru Temizlemeciye Hoş Geldiniz!<br>";
}
// sınıfın işi bittiğinde, yıkılırken çağırılacak kısmı yazıyoruz
function __destruct(){
// sınıf yıkılırken çalışan kısım
echo "Güle güle, yine bekleriz :)";
}
// sınıf camasir değişkenine muhtaç olduğundan bu değişkene değer atayabilmek için methodumuzu yazıyoruz
public function setCamasir($gelenCamasir){
$this->camasir = $gelenCamasir;
}
// sınıfa işlem yaptırabilmek için dışarıdan çağırılacak methodu tanımlıyoruz
public function yika($gelenCamasir = NULL){
// istersek bu fonksiyon ile çamaşırı üstüne yazabiliyoruz, kullanırken daha düzgün gözükmesi için
if(!is_null($gelenCamasir))
$this->setCamasir($gelenCamasir);
// elimizde camasir yoksa üzüntüden ölüyoruz
if(!$this->camasir) die("Çamaşır yok :(");
// elimizde çamaşır olduğuna göre kuru temizleme aşamalarında yapılacak işlemleri çağırıyoruz
$this->yikamaIslemi();
$this->kurulamaIslemi();
$this->utulemeIslemi();
}
// çamaşır makinesi işlemleri, deterjan sabit olarak geliyor
private function yikamaIslemi(){
echo $this->camasir . ", " . $this::deterjan . " ile yıkandı<br>";
}
// kurutma makinesi işlemleri
private function kurulamaIslemi(){
echo $this->camasir . " kurulandı<br>";
}
// ütü işlemleri
private function utulemeIslemi(){
echo $this->camasir . " ütülendi<br>";
}
}
// KuruTemizleme işlemini evlere servis şeklinde genişletmek için yeni bir sınıf açıyoruz, öncekinden miras alıyoruz
class EveKuruTemizleme extends KuruTemizleme{
// aynı methodla çağırmak için üstüne yazıyoruz (aynı isimle tekrar tanımlıyoruz)
public function yika($gelenCamasir = null, $teslimAlinacakMi = true, $teslimEdilecekMi = true){
// çamaşırın üstüne yazma kısımları tekrar yazılıyor (dışarıya alınabilir mi? düşünelim)
if(!is_null($gelenCamasir))
$this->setCamasir($gelenCamasir);
// bu sınıfta eklediğimiz özellikleri kontrol edip çağırıyoruz
if($teslimAlinacakMi) $this->teslimAl();
// yıkama işlemimiz miras alınan sınıftan farklı olmadığı için geliştirdiğimiz method içinde miras sınıftaki methodu çağırıyoruz
parent::yika();
// bu sınıfta eklediğimiz özellikleri kontrol edip çağırıyoruz
if($teslimEdilecekMi) $this->teslimEt();
}
// geliştirdiğimiz sınıfta tanımladığımız methodlar
private function teslimAl(){
echo $this->camasir." teslim alındı<br>";
}
private function teslimEt(){
echo $this->camasir." teslim edildi<br>";
}
}
// instance oluşturuyoruz
$kuruTemizlemeci = new EveKuruTemizleme();
// camasir için veri gönderiyoruz
$kuruTemizlemeci->setCamasir("Pantul");
// camasir yıkama işlemlerini çalıştırıyoruz
$kuruTemizlemeci->yika();