mirror of
https://github.com/php/doc-tr.git
synced 2026-03-24 15:22:23 +01:00
211 lines
4.8 KiB
XML
211 lines
4.8 KiB
XML
<?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
|
||
-->
|
||
|