-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathexamples.xml
210 lines (179 loc) · 4.83 KB
/
examples.xml
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 6f11457f11d91834e1240c3351d8c4e289371b6d Maintainer: nilgun Status: ready -->
<appendix xml:id="classobj.examples">
&reftitle.examples;
<para>
Bu örnekte, önce bir temel sınıf ve bu sınıfın bir türevini
tanımlayacağız. Temel sınıf, genel olarak bitkileri, yenilebilirlikleri
ve renkleri ile tanımlayacak. <varname>Lahana</varname> alt
sınıfı, sebzenin pişirilebilir olup olmadığını bulan bir başka yöntem ekleyecek.
</para>
<para>
<example>
<title>- Sınıf Tanımları</title>
<para><varname>Bitki</varname></para>
<programlisting role="php">
<![CDATA[
<?php
// Üye özellikler ve yöntemlerle temel sınıf
class Bitki {
public $yenir;
public $renk;
public $isim;
public function __construct($yenir="", $renk="yeşil", $isim="")
{
$this->yenir = $yenir;
$this->renk = $renk;
$this->isim = $isim;
}
public function yenir_mi()
{
return $this->yenir;
}
public function ne_renk()
{
return $this->renk;
}
public function ismi()
{
return $this->isim;
}
} // Bitki sınıfının sonu
?>
]]>
</programlisting>
<para><varname>Lahana</varname></para>
<programlisting role="php">
<![CDATA[
<?php
class Lahana extends Bitki {
public $pişirilir = "evet";
public function __construct($yenir="evet", $renk="yeşil", $isim="Lahana")
{
parent::__construct($yenir, $renk, $isim);
}
public function pişirilir()
{
$this->pişirilir = "evet";
}
public function pişirilir_mi()
{
return $this->pişirilir;
}
} // Lahana sınıfının sonu
?>
]]>
</programlisting>
</example>
</para>
<para>
Bu sınıflardan iki nesne örnekleyip, ata sınıfları dahil bunlar hakkındaki
tüm bilgiyi çıktılayacağız. Ayrıca, değişkenlerin çıktılarını güzelleştirmek
için bazı ek işlevler tanımlayacağız.
</para>
<para>
<example>
<title>dnm.php</title>
<programlisting role="php">
<![CDATA[
<?php
// sınıfları yüklemek için otomatik yükleyiciyi kaydet
spl_autoload_register();
function printProperties($obj)
{
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}
function printMethods($obj)
{
$arr = get_class_methods(get_class($obj));
foreach ($arr as $method) {
echo "\t$method() işlevi\n";
}
}
function objectBelongsTo($obj, $class)
{
if (is_subclass_of($obj, $class)) {
echo "$obj->isim, $class sınıfının alt sınıfı olan ";
echo get_class($obj), " sınıfındandır.\n";
} else {
echo "$obj->isim, $class sınıfının alt sınıflarından değildir.\n";
}
}
// 2 nesne örnekleyelim
$sebze = new Bitki("belki", "yeşil", "sebze");
$tombul = new Lahana("evet", "mavi", "Brüksel Lahanası");
// Nesne bilgilerini basalım
echo "sebze: " . get_class($sebze) . " sınıfında\n";
echo "tombul: " . get_class($tombul) . " sınıfında";
echo ", ATA sınıfı " . get_parent_class($tombul) . "\n";
// Özellikleri gösterelim
echo "\nsebze: Özellikler\n";
printProperties($sebze);
echo "\n\ntombul: Özellikler\n";
printProperties($tombul);
// ve tompul yöntemleri
echo "\ntombul: Yöntemler\n";
printMethods($tombul);
echo "\nEbeveynler:\n";
objectBelongsTo($tombul, Lahana::class);
objectBelongsTo($tombul, Bitki::class);
?>
]]>
</programlisting>
&examples.outputs;
<screen>
<![CDATA[
sebze: Bitki sınıfında
tombul: Lahana sınıfında, ATA sınıfı Bitki
sebze: Özellikler
yenir = belki
renk = yeşil
isim = sebze
tombul: Özellikler
pişirilir = evet
yenir = evet
renk = mavi
isim = Brüksel Lahanası
tombul: Yöntemler
__construct() işlevi
pişirilir() işlevi
pişirilir_mi() işlevi
yenir_mi() işlevi
ne_renk() işlevi
ismi() işlevi
Ebeveynler:
Brüksel Lahanası, Lahana sınıfının alt sınıflarından değildir.
Brüksel Lahanası, Bitki sınıfının alt sınıfı olan Lahana sınıfındandır.
]]>
</screen>
<para>
Yukarıdaki örnekte önemli şeylerden biri, <varname>$tombul</varname>
nesnesinin <classname>Lahana</classname> sınıfının bir örneği,
<classname>Lahana</classname> sınıfının ise <classname>Bitki</classname>
sınıfının ise bir alt sınıfı oluşudur.
</para>
</example>
</para>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->