{"id":4213,"date":"2023-09-03T22:00:25","date_gmt":"2023-09-03T22:00:25","guid":{"rendered":"https:\/\/sunucucozumleri.com\/?p=4213"},"modified":"2023-08-07T21:16:03","modified_gmt":"2023-08-07T21:16:03","slug":"php-ile-nesne-tabanli-programlama-ornekleri","status":"publish","type":"post","link":"https:\/\/sunucucozumleri.com\/blog\/php-ile-nesne-tabanli-programlama-ornekleri\/","title":{"rendered":"PHP ile Nesne Tabanl\u0131 Programlama \u00d6rnekleri"},"content":{"rendered":"<p>G\u00fcn\u00fcm\u00fcz\u00fcn pop\u00fcler programlama dillerinden olan nesne tabanl\u0131 programlama, yaz\u0131l\u0131m geli\u015ftirme s\u00fcrecinde b\u00fcy\u00fck \u00f6neme sahiptir. Bu yaz\u0131m\u0131zda nesne tabanl\u0131 programlaman\u0131n temellerini ele alarak, s\u0131n\u0131f tan\u0131m\u0131ndan nesne olu\u015fturma i\u015flemine, olu\u015fturulan nesnenin \u00f6zelliklerini ayarlama y\u00f6ntemlerinden, nesnenin metotlar\u0131na nas\u0131l eri\u015filece\u011fine, kal\u0131t\u0131m mekanizmas\u0131yla nas\u0131l i\u015flem yap\u0131laca\u011f\u0131ndan nesneler aras\u0131 ili\u015fkilerin nas\u0131l kurulaca\u011f\u0131na ve hatta nesne tabanl\u0131 programlama ile dosya i\u015flemlerine de\u011finece\u011fiz. Bu yaz\u0131 sayesinde nesne tabanl\u0131 programlama konusunda temel bilgilere sahip olacak ve projelerinizi daha verimli bir \u015fekilde geli\u015ftirebileceksiniz.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Makale \u0130\u00e7eri\u011fi<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u0130\u00e7indekiler Tablosunu A\u00e7\/Kapat\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-nesne-tabanli-programlama-ornekleri\/#Sinif_Tanimi_Nasil_Yapilir\" >S\u0131n\u0131f Tan\u0131m\u0131 Nas\u0131l Yap\u0131l\u0131r?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-nesne-tabanli-programlama-ornekleri\/#Nesne_Olusturma_Islemi_Nasil_Gerceklestirilir\" >Nesne Olu\u015fturma \u0130\u015flemi Nas\u0131l Ger\u00e7ekle\u015ftirilir?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-nesne-tabanli-programlama-ornekleri\/#Olusturulan_Nesnenin_Ozelliklerini_Nasil_Ayarlariz\" >Olu\u015fturulan Nesnenin \u00d6zelliklerini Nas\u0131l Ayarlar\u0131z?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-nesne-tabanli-programlama-ornekleri\/#Nesnenin_Metotlarina_Nasil_Erisilir\" >Nesnenin Metotlar\u0131na Nas\u0131l Eri\u015filir?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-nesne-tabanli-programlama-ornekleri\/#Kalitim_Mekanizmasiyla_Nasil_Islem_Yapariz\" >Kal\u0131t\u0131m Mekanizmas\u0131yla Nas\u0131l \u0130\u015flem Yapar\u0131z?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-nesne-tabanli-programlama-ornekleri\/#Nesneler_Arasi_Iliskileri_Nasil_Kurariz\" >Nesneler Aras\u0131 \u0130li\u015fkileri Nas\u0131l Kurar\u0131z?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-ile-nesne-tabanli-programlama-ornekleri\/#Nesne_Tabanli_Programlama_Ile_Dosya_Islemleri\" >Nesne Tabanl\u0131 Programlama \u0130le Dosya \u0130\u015flemleri<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Sinif_Tanimi_Nasil_Yapilir\"><\/span>S\u0131n\u0131f Tan\u0131m\u0131 Nas\u0131l Yap\u0131l\u0131r?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Bir programlama dili kullanarak bir s\u0131n\u0131f tan\u0131mlamak, nesne y\u00f6nelimli programlama (OOP) prensiplerine uygun olarak yap\u0131lan bir i\u015flemdir. Bir s\u0131n\u0131f, bir nesnenin \u00f6zelliklerini ve davran\u0131\u015flar\u0131n\u0131 belirleyen bir \u015fablondur. S\u0131n\u0131f tan\u0131mlamak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyebilirsiniz:<\/p>\n<ol>\n<li>S\u0131n\u0131f ad\u0131n\u0131 belirleyin: S\u0131n\u0131f\u0131n\u0131za bir isim se\u00e7in. Bu isim, s\u0131n\u0131f\u0131n neyi temsil etti\u011fini veya hangi t\u00fcr nesneleri yaratt\u0131\u011f\u0131n\u0131 a\u00e7\u0131k bir \u015fekilde ifade etmelidir.<\/li>\n<li>\u00d6zellikleri belirleyin: S\u0131n\u0131f\u0131n\u0131za ait olan \u00f6zellikleri tan\u0131mlay\u0131n. \u00d6zellikler genellikle de\u011fi\u015fkenler olarak temsil edilir ve nesnenin durumunu tutarlar. \u00d6rne\u011fin, bir Araba s\u0131n\u0131f\u0131 i\u00e7in marka, model, renk gibi \u00f6zellikler tan\u0131mlanabilir.<\/li>\n<li>Metotlar\u0131 belirleyin: S\u0131n\u0131f\u0131n\u0131za ait olan metotlar\u0131 tan\u0131mlay\u0131n. Metotlar, s\u0131n\u0131f\u0131n davran\u0131\u015flar\u0131n\u0131 belirler ve nesne \u00fczerinde i\u015flemler ger\u00e7ekle\u015ftirir. \u00d6rne\u011fin, bir Araba s\u0131n\u0131f\u0131 i\u00e7in s\u00fcr, fren yap gibi metotlar tan\u0131mlanabilir.<\/li>\n<li>S\u0131n\u0131f\u0131 olu\u015fturun: Tan\u0131mlad\u0131\u011f\u0131n\u0131z s\u0131n\u0131f\u0131, program\u0131n\u0131zdaki di\u011fer bile\u015fenlerle kullanmak i\u00e7in olu\u015fturun. Bu ad\u0131mda, s\u0131n\u0131f\u0131n bir \u00f6rne\u011fini (nesnesini) olu\u015fturabilir ve bu nesne \u00fczerinden \u00f6zelliklere eri\u015febilir veya metotlar\u0131 \u00e7a\u011f\u0131rabilirsiniz.<\/li>\n<\/ol>\n<table>\n<tr>\n<th>Ad\u0131m<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td>1<\/td>\n<td>S\u0131n\u0131f ad\u0131n\u0131 belirleyin<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>\u00d6zellikleri belirleyin<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>Metotlar\u0131 belirleyin<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>S\u0131n\u0131f\u0131 olu\u015fturun<\/td>\n<\/tr>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Nesne_Olusturma_Islemi_Nasil_Gerceklestirilir\"><\/span>Nesne Olu\u015fturma \u0130\u015flemi Nas\u0131l Ger\u00e7ekle\u015ftirilir?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Nesne olu\u015fturma i\u015flemi, Nesne Tabanl\u0131 Programlama (OOP) kavram\u0131n\u0131n temel bir ad\u0131m\u0131d\u0131r. OOP, programlamada nesnelerin bir araya gelerek karma\u015f\u0131k yap\u0131lar olu\u015fturmas\u0131na olanak tan\u0131yan bir yakla\u015f\u0131md\u0131r. Bu \u015fekilde, nesnelerin birbirleriyle etkile\u015fimi sa\u011flanabilir ve daha d\u00fczenli ve anla\u015f\u0131l\u0131r bir kod yaz\u0131labilir.<\/p>\n<p>Bir nesne olu\u015fturmak i\u00e7in, s\u0131n\u0131f ad\u0131yla bir nesne t\u00fcretmemiz gerekmektedir. Bu i\u015flem, &#8220;new&#8221; ifadesiyle ger\u00e7ekle\u015ftirilir. Yani, s\u0131n\u0131fAd\u0131 nesneAd\u0131 = new s\u0131n\u0131fAd\u0131(); \u015feklinde bir kod sat\u0131r\u0131yla nesne olu\u015fturulur. Bu sat\u0131rda, &#8220;s\u0131n\u0131fAd\u0131&#8221; nesnenin hangi s\u0131n\u0131f\u0131n bir \u00f6rne\u011fi olaca\u011f\u0131n\u0131 belirtirken, &#8220;nesneAd\u0131&#8221; ise olu\u015fturulan nesnenin ismini belirtir.<\/p>\n<ul>\n<li>Nesne olu\u015fturulurken, bellekte yeni bir yer ayr\u0131l\u0131r ve nesne bu alana yerle\u015ftirilir.<\/li>\n<li>Olu\u015fturulan nesne, s\u0131n\u0131f\u0131n sahip oldu\u011fu \u00f6zelliklere (de\u011fi\u015fkenler) ve metotlara (fonksiyonlar) eri\u015fim sa\u011flar.<\/li>\n<li>Bir s\u0131n\u0131ftan birden fazla nesne olu\u015fturulabilir ve her nesne, ba\u011f\u0131ms\u0131z bir \u00f6rnektir.<\/li>\n<\/ul>\n<table>\n<tr>\n<th>Olu\u015fturulan Nesne \u0130\u015flem Ad\u0131<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td>nokta(.)<\/td>\n<td>Bir s\u0131n\u0131fa ait de\u011fi\u015fkenlere ve metotlara eri\u015fmek i\u00e7in kullan\u0131l\u0131r.<\/td>\n<\/tr>\n<tr>\n<td>this<\/td>\n<td>Bir s\u0131n\u0131f\u0131n i\u00e7erisindeki metotlarda, o s\u0131n\u0131fa ait de\u011fi\u015fkenlere eri\u015fmek i\u00e7in kullan\u0131l\u0131r.<\/td>\n<\/tr>\n<tr>\n<td>super<\/td>\n<td>Bir alt s\u0131n\u0131ftan, \u00fcst s\u0131n\u0131fa ait de\u011fi\u015fkenlere veya metotlara eri\u015fmek i\u00e7in kullan\u0131l\u0131r.<\/td>\n<\/tr>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Olusturulan_Nesnenin_Ozelliklerini_Nasil_Ayarlariz\"><\/span>Olu\u015fturulan Nesnenin \u00d6zelliklerini Nas\u0131l Ayarlar\u0131z?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>HTML&#8217;de, bir nesnenin \u00f6zelliklerini ayarlamak i\u00e7in farkl\u0131 y\u00f6ntemler bulunmaktad\u0131r. \u00d6zellikler, bir nesnenin davran\u0131\u015f\u0131n\u0131 ve g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc belirleyen de\u011ferlerdir. Bu de\u011ferler, nesnenin g\u00f6r\u00fcnt\u00fcs\u00fc, boyutlar\u0131, rengi vb. gibi \u00f6zellikleri i\u00e7erir. Bir nesnenin \u00f6zelliklerini ayarlamak i\u00e7in genellikle HTML etiketlerinde kullan\u0131lan \u00f6zelliklere de\u011fer atan\u0131r.<\/p>\n<p>\u00d6rne\u011fin, bir resim etiketine bir resim URL&#8217;si atayarak resim nesnesinin kayna\u011f\u0131n\u0131 belirleyebiliriz. Bunun i\u00e7in <strong>src<\/strong> \u00f6zelli\u011fini kullanabiliriz. \u00d6rne\u011fin:<\/p>\n<p>&lt;img src=&#8221;resim.jpg&#8221; alt=&#8221;\u00d6rnek Resim&#8221; \/&gt;<\/p>\n<p>Bu \u015fekilde, resim nesnesinin kayna\u011f\u0131n\u0131 &#8220;resim.jpg&#8221; olarak ayarlam\u0131\u015f olduk. <strong>alt<\/strong> \u00f6zelli\u011fi ise resmin alternatif metni olarak kullan\u0131l\u0131r, e\u011fer resim y\u00fcklenemezse bu metin g\u00f6sterilir.<\/p>\n<p>Di\u011fer bir \u00f6rnek olarak ba\u011flant\u0131 etiketlerini ele alal\u0131m. Bir ba\u011flant\u0131 nesnesine bir URL atamak i\u00e7in <strong>href<\/strong> \u00f6zelli\u011fini kullan\u0131r\u0131z. \u00d6rne\u011fin:<\/p>\n<p>&lt;a href=&#8221;https:\/\/www.example.com&#8221;&gt;\u00d6rnek Ba\u011flant\u0131&lt;\/a&gt;<\/p>\n<p>Bu \u015fekilde, ba\u011flant\u0131 nesnesinin hedefini &#8220;https:\/\/www.example.com&#8221; olarak ayarlam\u0131\u015f olduk. Kullan\u0131c\u0131 bu ba\u011flant\u0131ya t\u0131klad\u0131\u011f\u0131nda belirtilen URL&#8217;e y\u00f6nlendirilecektir.<\/p>\n<table>\n<tr>\n<th>Etiket<\/th>\n<th>\u00d6zellik<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td>&lt;img&gt;<\/td>\n<td>src<\/td>\n<td>Resim nesnesinin kayna\u011f\u0131n\u0131 belirler.<\/td>\n<\/tr>\n<tr>\n<td>&lt;img&gt;<\/td>\n<td>alt<\/td>\n<td>Resmin alternatif metnini belirler.<\/td>\n<\/tr>\n<tr>\n<td>&lt;a&gt;<\/td>\n<td>href<\/td>\n<td>Ba\u011flant\u0131 nesnesinin hedefini belirler.<\/td>\n<\/tr>\n<\/table>\n<p>Yukar\u0131da sadece \u00f6rnek olarak baz\u0131 \u00f6zellikleri ele ald\u0131k. HTML&#8217;de kullan\u0131labilecek bir\u00e7ok farkl\u0131 \u00f6zellik bulunmaktad\u0131r. Bu \u00f6zelliklerin kullan\u0131m\u0131, nesnelerin istenilen \u015fekilde g\u00f6r\u00fcnt\u00fclenmesini ve davranmas\u0131n\u0131 sa\u011flar. \u00d6zellikleri kullan\u0131rken, do\u011fru etiketi ve do\u011fru \u00f6zelli\u011fi belirlemek \u00f6nemlidir.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Nesnenin_Metotlarina_Nasil_Erisilir\"><\/span>Nesnenin Metotlar\u0131na Nas\u0131l Eri\u015filir?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Her programlama dilinde oldu\u011fu gibi, Python&#8217;da da nesnelerin metotlar\u0131na eri\u015fmek olduk\u00e7a \u00f6nemlidir. Metotlar, bir nesnenin davran\u0131\u015flar\u0131n\u0131 tan\u0131mlar ve bu nesnenin \u00fczerindeki i\u015flemleri ger\u00e7ekle\u015ftirmemizi sa\u011flar. Peki, Python&#8217;da nesnenin metotlar\u0131na nas\u0131l eri\u015febiliriz?<\/p>\n<p>Python&#8217;da bir nesnenin metotlar\u0131na eri\u015fmek i\u00e7in nokta operat\u00f6r\u00fcn\u00fc kullan\u0131r\u0131z. \u00d6rne\u011fin, bir liste nesnesi olu\u015fturdu\u011funuzu ve bu listenin bir metotunu kullanmak istedi\u011finizi d\u00fc\u015f\u00fcnelim. \u0130lk ad\u0131m olarak, liste nesnesini tan\u0131mlad\u0131\u011f\u0131n\u0131z bir de\u011fi\u015fken olu\u015fturmal\u0131s\u0131n\u0131z. Sonras\u0131nda, de\u011fi\u015fkenin ad\u0131n\u0131 yazd\u0131ktan sonra nokta operat\u00f6r\u00fcn\u00fc kullanarak nesnenin metotlar\u0131na eri\u015febilirsiniz.<\/p>\n<p>\u00d6rne\u011fin, &#8220;liste&#8221; adl\u0131 bir de\u011fi\u015fken olu\u015fturdu\u011funuzu ve bu de\u011fi\u015fkenin &#8220;append&#8221; adl\u0131 bir metotunu kullanmak istedi\u011finizi d\u00fc\u015f\u00fcnelim. A\u015fa\u011f\u0131da \u00f6rnek bir <a href=\"https:\/\/sunucucozumleri.com\/blog\/python-nedir\/\">Python<\/a> kodu bulunmaktad\u0131r:<\/p>\n<p>liste = [1, 2, 3]<br \/>\nliste.append(4)<br \/>\nprint(liste)<\/p>\n<p>Yukar\u0131daki kodu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, listenin sonuna &#8220;4&#8221; de\u011ferini ekleyen &#8220;append&#8221; metodu uygulanacakt\u0131r. Sonu\u00e7 olarak, \u00e7\u0131kt\u0131 olarak [1, 2, 3, 4] elde edersiniz.<\/p>\n<p>Python&#8217;da nesnelerin metotlar\u0131na eri\u015fmek olduk\u00e7a kolayd\u0131r. Tek yapman\u0131z gereken, nesneyi tan\u0131mlad\u0131ktan sonra nokta operat\u00f6r\u00fcn\u00fc kullanarak istedi\u011finiz metodu \u00e7a\u011f\u0131rmakt\u0131r. B\u00f6ylece, nesnelerin sundu\u011fu farkl\u0131 i\u015flevleri kullanarak programlar\u0131n\u0131z\u0131 daha etkili bir \u015fekilde yazabilirsiniz.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Kalitim_Mekanizmasiyla_Nasil_Islem_Yapariz\"><\/span>Kal\u0131t\u0131m Mekanizmas\u0131yla Nas\u0131l \u0130\u015flem Yapar\u0131z?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Kal\u0131t\u0131m, nesne tabanl\u0131 programlaman\u0131n temel kavramlar\u0131ndan biridir ve bir s\u0131n\u0131f\u0131n di\u011fer bir s\u0131n\u0131ftan t\u00fcretilmesini sa\u011flar. Bu mekanizma sayesinde bir s\u0131n\u0131f, ba\u015fka bir s\u0131n\u0131f\u0131n \u00f6zelliklerini ve metotlar\u0131n\u0131 miras alabilir ve buna ek olarak kendi \u00f6zelliklerini ve metotlar\u0131n\u0131 da ekleyebilir.<\/p>\n<p>Kal\u0131t\u0131m i\u015flemi yapabilmek i\u00e7in \u00f6ncelikle miras al\u0131nacak olan s\u0131n\u0131f\u0131n belirlenmesi gerekmektedir. Miras al\u0131nacak s\u0131n\u0131f\u0131n ismi, miras al\u0131nacak s\u0131n\u0131f\u0131n ad\u0131n\u0131n i\u00e7erisine yaz\u0131l\u0131r ve bunun ard\u0131ndan &#8220;extends&#8221; anahtar kelimesi kullan\u0131larak miras al\u0131nacak s\u0131n\u0131f belirtilir. B\u00f6ylece t\u00fcretilen s\u0131n\u0131f, miras ald\u0131\u011f\u0131 s\u0131n\u0131f\u0131n \u00f6zellik ve metotlar\u0131n\u0131 kullanabilir.<\/p>\n<p>Kal\u0131t\u0131m mekanizmas\u0131yla i\u015flem yaparken dikkat edilmesi gereken nokta, miras al\u0131nacak s\u0131n\u0131f\u0131n eri\u015fim d\u00fczeyi ve eri\u015filebilirlik ayarlar\u0131n\u0131n uygun \u015fekilde yap\u0131lmas\u0131d\u0131r. E\u011fer miras almak istedi\u011fimiz s\u0131n\u0131f\u0131n baz\u0131 \u00f6zelliklerini veya metotlar\u0131n\u0131 kullanmak istemiyorsak, bu \u00f6zellikleri &#8220;private&#8221; olarak belirleyerek miras al\u0131nacak s\u0131n\u0131f\u0131n yan\u0131lt\u0131c\u0131 metotlar\u0131n\u0131 saklayabiliriz.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Nesneler_Arasi_Iliskileri_Nasil_Kurariz\"><\/span>Nesneler Aras\u0131 \u0130li\u015fkileri Nas\u0131l Kurar\u0131z?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\nNesneler aras\u0131 ili\u015fkiler, nesne tabanl\u0131 programlama paradigmas\u0131n\u0131n temel bir kavram\u0131d\u0131r. Bu ili\u015fkiler, farkl\u0131 nesnelerin birbiriyle etkile\u015fime ge\u00e7mesini ve birbirini tamamlayan g\u00f6revleri yerine getirmesini sa\u011flar. Nesneler aras\u0131 ili\u015fkileri kurabilmek i\u00e7in ise farkl\u0131 y\u00f6ntemler ve mekanizmalar kullan\u0131l\u0131r.\n<\/p>\n<p>\nBir nesneyle ili\u015fki kurabilmek i\u00e7in \u00f6ncelikle nesnenin s\u0131n\u0131f\u0131na eri\u015fmemiz gerekmektedir. Her nesnenin bir s\u0131n\u0131f\u0131 vard\u0131r ve bu s\u0131n\u0131f nesnenin \u00f6zelliklerini ve davran\u0131\u015flar\u0131n\u0131 tan\u0131mlar. Nesneler aras\u0131 ili\u015fkiler genellikle s\u0131n\u0131flar aras\u0131nda kurulur. Yani bir nesne, ba\u015fka bir nesnenin \u00f6rne\u011fidir ve bu nesneyle ayn\u0131 s\u0131n\u0131fa aittir.\n<\/p>\n<p>\nNesneler aras\u0131 ili\u015fkileri kurabilmek i\u00e7in s\u0131n\u0131flar aras\u0131nda ba\u011f\u0131ml\u0131l\u0131k (dependency), ili\u015fki (association), kal\u0131t\u0131m (inheritance) ve bile\u015fim (composition) gibi mekanizmalar\u0131 kullanabiliriz. Ba\u011f\u0131ml\u0131l\u0131k, bir nesnenin ba\u015fka bir nesnenin metod veya \u00f6zelliklerine ihtiya\u00e7 duymas\u0131 durumunu ifade eder. \u0130li\u015fki ise iki veya daha fazla nesne aras\u0131ndaki etkile\u015fimi ifade eder. Kal\u0131t\u0131m, bir s\u0131n\u0131f\u0131n ba\u015fka bir s\u0131n\u0131ftan \u00f6zelliklerini ve davran\u0131\u015flar\u0131n\u0131 miras almas\u0131d\u0131r. Bile\u015fim ise bir s\u0131n\u0131f\u0131n ba\u015fka bir s\u0131n\u0131f\u0131 yap\u0131s\u0131nda kullanmas\u0131d\u0131r.\n<\/p>\n<p>\nNesneler aras\u0131 ili\u015fkileri olu\u015fturmak i\u00e7in bu mekanizmalar\u0131 kullan\u0131rken, her bir nesnenin rol\u00fcn\u00fc ve g\u00f6revini iyi bir \u015fekilde belirlemek \u00f6nemlidir. \u0130yi tasarlanm\u0131\u015f bir nesne tabanl\u0131 programda, nesneler aras\u0131 ili\u015fkiler a\u00e7\u0131k, anla\u015f\u0131l\u0131r ve esnek olmal\u0131d\u0131r. Bu sayede programdaki de\u011fi\u015fiklikler veya geni\u015flemeler kolayl\u0131kla yap\u0131labilir ve s\u00fcrd\u00fcr\u00fclebilir bir kod taban\u0131 olu\u015fturulabilir.\n<\/p>\n<ul>\n<li><strong>Ba\u011f\u0131ml\u0131l\u0131k:<\/strong> Bir nesne, ba\u015fka bir nesnenin metot veya \u00f6zelliklerine ihtiya\u00e7 duyabilir.<\/li>\n<li><strong>\u0130li\u015fki:<\/strong> Nesneler aras\u0131nda etkile\u015fim kurulabilir ve belirli bir amaca hizmet edebilir.<\/li>\n<li><strong>Kal\u0131t\u0131m:<\/strong> Bir s\u0131n\u0131f, ba\u015fka bir s\u0131n\u0131ftan \u00f6zellik ve davran\u0131\u015flar\u0131n\u0131 miras alabilir.<\/li>\n<li><strong>Bile\u015fim:<\/strong> Bir s\u0131n\u0131f, ba\u015fka bir s\u0131n\u0131f\u0131 yap\u0131s\u0131nda kullanabilir.<\/li>\n<\/ul>\n<table>\n<tr>\n<th>Mekanizma<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td>Ba\u011f\u0131ml\u0131l\u0131k<\/td>\n<td>Bir nesnenin ba\u015fka bir nesnenin metot veya \u00f6zelliklerine ihtiya\u00e7 duymas\u0131<\/td>\n<\/tr>\n<tr>\n<td>\u0130li\u015fki<\/td>\n<td>Nesneler aras\u0131nda etkile\u015fim ve belirli bir amaca hizmet etme<\/td>\n<\/tr>\n<tr>\n<td>Kal\u0131t\u0131m<\/td>\n<td>Bir s\u0131n\u0131f\u0131n ba\u015fka bir s\u0131n\u0131ftan \u00f6zelliklerini ve davran\u0131\u015flar\u0131n\u0131 miras almas\u0131<\/td>\n<\/tr>\n<tr>\n<td>Bile\u015fim<\/td>\n<td>Bir s\u0131n\u0131f\u0131n ba\u015fka bir s\u0131n\u0131f\u0131 yap\u0131s\u0131nda kullanmas\u0131<\/td>\n<\/tr>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Nesne_Tabanli_Programlama_Ile_Dosya_Islemleri\"><\/span>Nesne Tabanl\u0131 Programlama \u0130le Dosya \u0130\u015flemleri<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Modern bir programlama yakla\u015f\u0131m\u0131 olan nesne tabanl\u0131 programlama, verileri ve fonksiyonlar\u0131 birle\u015ftirerek daha d\u00fczenli ve anla\u015f\u0131labilir bir kod yazma y\u00f6ntemi sunar. Nesne tabanl\u0131 programlamay\u0131 kullanarak, dosyalarla \u00e7al\u0131\u015fmak ve onlar\u0131 okumak veya yazmak gibi dosya i\u015flemlerini ger\u00e7ekle\u015ftirmek de olduk\u00e7a kolayd\u0131r. Bu blog yaz\u0131s\u0131nda, nesne tabanl\u0131 programlama ile dosya i\u015flemlerini nas\u0131l ger\u00e7ekle\u015ftirebilece\u011fimize bir g\u00f6z atal\u0131m.<\/p>\n<p><strong>Dosya Okuma ve Yazma<\/strong><\/p>\n<p>Nesne tabanl\u0131 programlama ile dosya okuma ve yazma i\u015flemleri, genellikle dosya ile ilgili bir nesne olu\u015fturarak ba\u015flar. Bu nesne, dosya ile etkile\u015fimde bulunmak i\u00e7in kullan\u0131lacak olan metotlar\u0131 i\u00e7erir. \u00d6ncelikle, dosyay\u0131 a\u00e7mak i\u00e7in <strong>open()<\/strong> fonksiyonunu kullanmal\u0131y\u0131z. Bu fonksiyon, dosyay\u0131 belirtilen modda (okuma, yazma veya ekleme) a\u00e7ar. Ard\u0131ndan, dosyay\u0131 okumak i\u00e7in <strong>read()<\/strong> metodu veya dosyaya yazmak i\u00e7in <strong>write()<\/strong> metodu kullan\u0131labilir. Dosyalar\u0131 kapatmay\u0131 unutmamak \u00f6nemlidir, bu y\u00fczden <strong>close()<\/strong> metodu kullan\u0131larak a\u00e7\u0131lan dosyalar kapat\u0131lmal\u0131d\u0131r.<\/p>\n<p><strong>Dosya \u0130\u015flemleri Listesi<\/strong><\/p>\n<table>\n<tr>\n<th>Metot<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<tr>\n<td>open()<\/td>\n<td>Belirtilen dosyay\u0131 a\u00e7ar ve bir dosya nesnesi d\u00f6nd\u00fcr\u00fcr.<\/td>\n<\/tr>\n<tr>\n<td>read()<\/td>\n<td>Dosyadaki verileri okur ve bir dize olarak d\u00f6nd\u00fcr\u00fcr.<\/td>\n<\/tr>\n<tr>\n<td>write()<\/td>\n<td>Belirtilen veriyi dosyaya yazar.<\/td>\n<\/tr>\n<tr>\n<td>close()<\/td>\n<td>A\u00e7\u0131lan dosyay\u0131 kapat\u0131r.<\/td>\n<\/tr>\n<\/table>\n<p>Dosya i\u015flemleri i\u00e7in bu metotlar temel olarak kullan\u0131labilir. Bu metotlarla dosyalar\u0131 okuyabilir, yazabilir ve \u00fczerlerinde de\u011fi\u015fiklik yapabilirsiniz. Dosya i\u015flemleri i\u00e7in kullan\u0131lan en yayg\u0131n modlar ise &#8220;r&#8221; (okuma modu), &#8220;w&#8221; (yazma modu) ve &#8220;a&#8221; (ekleme modu) olarak bilinir.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>G\u00fcn\u00fcm\u00fcz\u00fcn pop\u00fcler programlama dillerinden olan nesne tabanl\u0131 programlama, yaz\u0131l\u0131m geli\u015ftirme s\u00fcrecinde b\u00fcy\u00fck \u00f6neme sahiptir. Bu yaz\u0131m\u0131zda nesne tabanl\u0131 programlaman\u0131n temellerini ele alarak, s\u0131n\u0131f tan\u0131m\u0131ndan nesne olu\u015fturma i\u015flemine, olu\u015fturulan nesnenin \u00f6zelliklerini ayarlama y\u00f6ntemlerinden, nesnenin metotlar\u0131na nas\u0131l eri\u015filece\u011fine, kal\u0131t\u0131m mekanizmas\u0131yla nas\u0131l i\u015flem yap\u0131laca\u011f\u0131ndan nesneler aras\u0131 ili\u015fkilerin nas\u0131l kurulaca\u011f\u0131na ve hatta nesne tabanl\u0131 programlama ile dosya i\u015flemlerine de\u011finece\u011fiz. &hellip;<\/p>\n","protected":false},"author":6,"featured_media":4212,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[233],"tags":[],"class_list":["post-4213","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"acf":[],"_links":{"self":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts\/4213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/comments?post=4213"}],"version-history":[{"count":0,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts\/4213\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/media\/4212"}],"wp:attachment":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/media?parent=4213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/categories?post=4213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/tags?post=4213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}