{"id":38913,"date":"2026-02-10T14:30:43","date_gmt":"2026-02-10T11:30:43","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/"},"modified":"2026-02-10T14:30:43","modified_gmt":"2026-02-10T11:30:43","slug":"yapicilar-constructors-nesne-olusturmanin-temel-tasi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/","title":{"rendered":"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131"},"content":{"rendered":"<h2>Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131<\/h2>\n<p>Nesne y\u00f6nelimli programlaman\u0131n (NYP) kalbinde, s\u0131n\u0131flardan nesneler yaratma ve bu nesneleri kullan\u0131labilir bir duruma getirme s\u00fcreci yatar. \u0130\u015fte tam bu noktada yap\u0131c\u0131lar, yani &#8220;constructors&#8221;, devreye girer. Bir s\u0131n\u0131f\u0131n nesnesi (instance) olu\u015fturuldu\u011funda otomatik olarak \u00e7a\u011fr\u0131lan bu \u00f6zel metotlar, nesnenin ba\u015flang\u0131\u00e7 durumunu ayarlamak, gerekli kaynaklar\u0131 tahsis etmek ve nesnenin tutarl\u0131 bir \u015fekilde hayata ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in vazge\u00e7ilmez bir rol oynar. Bu makalede, yap\u0131c\u0131lar\u0131n ne oldu\u011funu, neden bu kadar \u00f6nemli olduklar\u0131n\u0131, farkl\u0131 t\u00fcrlerini ve geli\u015fmi\u015f kullan\u0131m senaryolar\u0131n\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h2>Yap\u0131c\u0131 (Constructor) Nedir?<\/h2>\n<p>Yap\u0131c\u0131, bir s\u0131n\u0131f\u0131n nesnesi olu\u015fturuldu\u011funda otomatik olarak \u00e7a\u011fr\u0131lan \u00f6zel bir metottur. Temel amac\u0131, yeni olu\u015fturulan nesnenin durumunu (yani \u00fcye de\u011fi\u015fkenlerini) ba\u015flatmak ve nesneyi kullan\u0131ma haz\u0131r hale getirmektir. Her s\u0131n\u0131f\u0131n en az bir yap\u0131c\u0131s\u0131 olmak zorundad\u0131r; e\u011fer siz bir yap\u0131c\u0131 tan\u0131mlamazsan\u0131z, derleyici sizin i\u00e7in varsay\u0131lan bir yap\u0131c\u0131 ekler.<\/p>\n<h3>Temel Tan\u0131m<\/h3>\n<p>Bir yap\u0131c\u0131, s\u0131n\u0131f ad\u0131yla ayn\u0131 isme sahip olan ve herhangi bir d\u00f6n\u00fc\u015f tipi (void bile) belirtilmeyen bir metottur. Nesneler <code>new<\/code> anahtar kelimesi kullan\u0131larak olu\u015fturuldu\u011funda, ilgili yap\u0131c\u0131 \u00e7a\u011fr\u0131l\u0131r. Bu s\u00fcre\u00e7, nesnenin bellekte yer almas\u0131n\u0131 ve ba\u015flang\u0131\u00e7 de\u011ferlerinin atanmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Yap\u0131c\u0131lar\u0131n \u00d6zellikleri<\/h3>\n<p>Yap\u0131c\u0131lar, normal metotlardan farkl\u0131 baz\u0131 \u00f6zelliklere sahiptir:<\/p>\n<ul>\n<li>S\u0131n\u0131f ad\u0131yla ayn\u0131 isme sahiptirler.<\/li>\n<li>D\u00f6n\u00fc\u015f tipi belirtilmez (void bile).<\/li>\n<li><code>new<\/code> anahtar kelimesiyle nesne olu\u015fturulurken otomatik olarak \u00e7a\u011fr\u0131l\u0131rlar.<\/li>\n<li>Eri\u015fim belirleyicileri (public, private, protected) olabilirler. Genellikle <code>public<\/code> olurlar ki d\u0131\u015far\u0131dan nesne olu\u015fturulabilsin.<\/li>\n<\/ul>\n<h3>Yap\u0131c\u0131 ve Metot Fark\u0131<\/h3>\n<p>Yap\u0131c\u0131lar ve metotlar aras\u0131ndaki temel fark, ama\u00e7lar\u0131d\u0131r. Yap\u0131c\u0131lar, nesneleri ba\u015flatmak ve ilk durumlar\u0131n\u0131 ayarlamak i\u00e7in kullan\u0131l\u0131rken, metotlar nesne \u00fczerinde belirli i\u015flemleri ger\u00e7ekle\u015ftirmek veya nesnenin durumunu de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r. Yap\u0131c\u0131lar sadece nesne olu\u015fturulurken bir kez \u00e7a\u011fr\u0131l\u0131rken, metotlar nesnenin \u00f6mr\u00fc boyunca istenildi\u011fi zaman \u00e7a\u011fr\u0131labilir.<\/p>\n<h2>Yap\u0131c\u0131lar\u0131n Amac\u0131 ve \u00d6nemi<\/h2>\n<p>Yap\u0131c\u0131lar, nesne y\u00f6nelimli programlamada nesnelerin do\u011fru ve g\u00fcvenli bir \u015fekilde ba\u015flat\u0131lmas\u0131n\u0131 sa\u011flayarak kritik bir rol oynar. Onlar olmadan, nesneler tutars\u0131z veya eksik bir durumda olu\u015fabilir, bu da \u00e7al\u0131\u015fma zaman\u0131 hatalar\u0131na yol a\u00e7abilir.<\/p>\n<h3>Nesne Ba\u015flatma<\/h3>\n<p>Bir nesne olu\u015fturuldu\u011funda, \u00fcye de\u011fi\u015fkenleri genellikle varsay\u0131lan de\u011ferlere (say\u0131sal tipler i\u00e7in 0, boolean i\u00e7in false, referans tipleri i\u00e7in null) sahiptir. Yap\u0131c\u0131lar, bu varsay\u0131lan de\u011ferleri, uygulaman\u0131n mant\u0131\u011f\u0131na uygun ba\u015flang\u0131\u00e7 de\u011ferleriyle de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fin, bir <code>Ogrenci<\/code> nesnesi olu\u015fturulurken <code>ad<\/code>, <code>soyad<\/code> ve <code>ogrenciNo<\/code> gibi bilgilerin hemen atanmas\u0131 gerekebilir.<\/p>\n<h3>Tutarl\u0131l\u0131k Sa\u011flama<\/h3>\n<p>Yap\u0131c\u0131lar, bir nesnenin her zaman ge\u00e7erli ve kullan\u0131labilir bir durumda olmas\u0131n\u0131 garanti eder. Zorunlu alanlar\u0131n bo\u015f b\u0131rak\u0131lmamas\u0131n\u0131 veya ge\u00e7ersiz de\u011ferler almas\u0131n\u0131 engelleyebilirler. Bu, program\u0131n daha kararl\u0131 ve hatas\u0131z \u00e7al\u0131\u015fmas\u0131na yard\u0131mc\u0131 olur.<\/p>\n<h3>Kaynak Tahsisi<\/h3>\n<p>Baz\u0131 durumlarda, bir nesnenin olu\u015fturulmas\u0131yla birlikte dosya tan\u0131t\u0131c\u0131lar\u0131, a\u011f ba\u011flant\u0131lar\u0131 veya veritaban\u0131 ba\u011flant\u0131lar\u0131 gibi harici kaynaklar\u0131n da tahsis edilmesi gerekebilir. Yap\u0131c\u0131lar, bu t\u00fcr kaynaklar\u0131 nesneyle birlikte ba\u015flatmak i\u00e7in uygun bir yer sa\u011flar.<\/p>\n<h2>Farkl\u0131 Yap\u0131c\u0131 T\u00fcrleri<\/h2>\n<p>Yap\u0131c\u0131lar, ald\u0131klar\u0131 parametre say\u0131s\u0131na ve t\u00fcr\u00fcne g\u00f6re farkl\u0131l\u0131k g\u00f6sterir. En yayg\u0131n kullan\u0131lan t\u00fcrler parametresiz ve parametreli yap\u0131c\u0131lard\u0131r.<\/p>\n<h3>Parametresiz Yap\u0131c\u0131 (No-Argument Constructor)<\/h3>\n<p>Parametresiz yap\u0131c\u0131, ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi herhangi bir parametre almayan yap\u0131c\u0131d\u0131r. Genellikle nesnenin \u00fcye de\u011fi\u015fkenlerine varsay\u0131lan de\u011ferler atamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-java\">public class Kitap {\n    String baslik;\n    String yazar;\n    int sayfaSayisi;\n\n    \/\/ Parametresiz Yap\u0131c\u0131\n    public Kitap() {\n        this.baslik = \"Bilinmiyor\";\n        this.yazar = \"Bilinmiyor\";\n        this.sayfaSayisi = 0;\n        System.out.println(\"Parametresiz Kitap nesnesi olu\u015fturuldu.\");\n    }\n\n    public void bilgileriGoster() {\n        System.out.println(\"Ba\u015fl\u0131k: \" + baslik + \", Yazar: \" + yazar + \", Sayfa Say\u0131s\u0131: \" + sayfaSayisi);\n    }\n\n    public static void main(String[] args) {\n        Kitap kitap1 = new Kitap(); \/\/ Parametresiz yap\u0131c\u0131 \u00e7a\u011fr\u0131l\u0131r\n        kitap1.bilgileriGoster();\n    }\n}<\/pre>\n<p><\/code><br \/>\nYukar\u0131daki \u00f6rnekte, <code>Kitap<\/code> s\u0131n\u0131f\u0131n\u0131n parametresiz yap\u0131c\u0131s\u0131, nesne olu\u015fturuldu\u011funda <code>baslik<\/code>, <code>yazar<\/code> ve <code>sayfaSayisi<\/code> alanlar\u0131na varsay\u0131lan de\u011ferler atar.<\/p>\n<h3>Parametreli Yap\u0131c\u0131 (Parameterized Constructor)<\/h3>\n<p>Parametreli yap\u0131c\u0131lar, bir veya daha fazla parametre alarak nesne olu\u015fturulurken d\u0131\u015far\u0131dan de\u011ferlerin atanmas\u0131n\u0131 sa\u011flar. Bu, nesnenin daha esnek bir \u015fekilde ba\u015flat\u0131lmas\u0131na olanak tan\u0131r.<\/p>\n<pre><code class=\"language-java\">public class Kitap {\n    String baslik;\n    String yazar;\n    int sayfaSayisi;\n\n    \/\/ Parametreli Yap\u0131c\u0131\n    public Kitap(String baslik, String yazar, int sayfaSayisi) {\n        this.baslik = baslik;\n        this.yazar = yazar;\n        this.sayfaSayisi = sayfaSayisi;\n        System.out.println(\"Parametreli Kitap nesnesi olu\u015fturuldu.\");\n    }\n\n    public void bilgileriGoster() {\n        System.out.println(\"Ba\u015fl\u0131k: \" + baslik + \", Yazar: \" + yazar + \", Sayfa Say\u0131s\u0131: \" + sayfaSayisi);\n    }\n\n    public static void main(String[] args) {\n        Kitap kitap2 = new Kitap(\"Java Programlama\", \"Ahmet Y\u0131lmaz\", 500); \/\/ Parametreli yap\u0131c\u0131 \u00e7a\u011fr\u0131l\u0131r\n        kitap2.bilgileriGoster();\n    }\n}<\/pre>\n<p><\/code><br \/>\nBu \u00f6rnekte, <code>Kitap<\/code> nesnesi olu\u015fturulurken <code>baslik<\/code>, <code>yazar<\/code> ve <code>sayfaSayisi<\/code> do\u011frudan parametre olarak ge\u00e7ilir ve yap\u0131c\u0131 taraf\u0131ndan atan\u0131r.<\/p>\n<h3>Kopyalama Yap\u0131c\u0131s\u0131 (Copy Constructor)<\/h3>\n<p>Kopyalama yap\u0131c\u0131s\u0131, mevcut bir nesnenin durumunu kullanarak yeni bir nesne olu\u015fturan \u00f6zel bir yap\u0131c\u0131 t\u00fcr\u00fcd\u00fcr. \u00d6zellikle C++ gibi dillerde yayg\u0131n olarak kullan\u0131l\u0131rken, Java'da do\u011frudan bir \"kopyalama yap\u0131c\u0131s\u0131\" kavram\u0131 yoktur. Bunun yerine, genellikle mevcut nesneyi parametre olarak alan bir yap\u0131c\u0131 tan\u0131mlan\u0131r veya bir <code>clone()<\/code> metodu kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-java\">public class Kitap {\n    String baslik;\n    String yazar;\n    int sayfaSayisi;\n\n    public Kitap(String baslik, String yazar, int sayfaSayisi) {\n        this.baslik = baslik;\n        this.yazar = yazar;\n        this.sayfaSayisi = sayfaSayisi;\n    }\n\n    \/\/ Kopyalama Yap\u0131c\u0131s\u0131 (Java stilinde)\n    public Kitap(Kitap digerKitap) {\n        this.baslik = digerKitap.baslik;\n        this.yazar = digerKitap.yazar;\n        this.sayfaSayisi = digerKitap.sayfaSayisi;\n        System.out.println(\"Bir Kitap nesnesi kopyalanarak olu\u015fturuldu.\");\n    }\n\n    public void bilgileriGoster() {\n        System.out.println(\"Ba\u015fl\u0131k: \" + baslik + \", Yazar: \" + yazar + \", Sayfa Say\u0131s\u0131: \" + sayfaSayisi);\n    }\n\n    public static void main(String[] args) {\n        Kitap orijinalKitap = new Kitap(\"Veri Yap\u0131lar\u0131\", \"Ay\u015fe Demir\", 350);\n        orijinalKitap.bilgileriGoster();\n\n        Kitap kopyaKitap = new Kitap(orijinalKitap); \/\/ Kopyalama yap\u0131c\u0131s\u0131 \u00e7a\u011fr\u0131l\u0131r\n        kopyaKitap.bilgileriGoster();\n    }\n}<\/pre>\n<p><\/code><br \/>\nBu \u00f6rnekte, <code>Kitap(Kitap digerKitap)<\/code> yap\u0131c\u0131s\u0131, mevcut bir <code>Kitap<\/code> nesnesinin de\u011ferlerini alarak yeni bir <code>Kitap<\/code> nesnesi olu\u015fturur.<\/p>\n<h2>Yap\u0131c\u0131 Overloading (A\u015f\u0131r\u0131 Y\u00fckleme)<\/h2>\n<p>Yap\u0131c\u0131 a\u015f\u0131r\u0131 y\u00fckleme (constructor overloading), bir s\u0131n\u0131fta birden fazla yap\u0131c\u0131 tan\u0131mlama yetene\u011fidir. Bu yap\u0131c\u0131lar\u0131n her birinin parametre listesi (parametre say\u0131s\u0131, parametre tipleri veya parametre s\u0131ralamas\u0131) farkl\u0131 olmal\u0131d\u0131r. Bu sayede, nesneler farkl\u0131 ba\u015flang\u0131\u00e7 durumlar\u0131yla veya farkl\u0131 veri setleriyle olu\u015fturulabilir.<\/p>\n<h3>Tan\u0131m<\/h3>\n<p>A\u015f\u0131r\u0131 y\u00fckleme, ayn\u0131 isimde birden fazla metot (veya yap\u0131c\u0131) tan\u0131mlaman\u0131n genel bir kavram\u0131d\u0131r. Yap\u0131c\u0131lar i\u00e7in bu, bir s\u0131n\u0131f\u0131n, nesnelerinin olu\u015fturulma \u015fekli i\u00e7in birden fazla se\u00e7enek sunmas\u0131 anlam\u0131na gelir.<\/p>\n<h3>Kullan\u0131m Alanlar\u0131<\/h3>\n<p>Yap\u0131c\u0131 a\u015f\u0131r\u0131 y\u00fckleme, bir nesnenin farkl\u0131 senaryolarda farkl\u0131 \u015fekillerde ba\u015flat\u0131lmas\u0131 gerekti\u011finde \u00e7ok kullan\u0131\u015fl\u0131d\u0131r. \u00d6rne\u011fin, bir <code>Ogrenci<\/code> nesnesi bazen sadece isimle, bazen isim ve numarayla, bazen de t\u00fcm detaylarla olu\u015fturulmak istenebilir.<\/p>\n<h3>\u00d6rnek Senaryo<\/h3>\n<p>Bir <code>Ogrenci<\/code> s\u0131n\u0131f\u0131 i\u00e7in farkl\u0131 yap\u0131c\u0131lar tan\u0131mlayarak a\u015f\u0131r\u0131 y\u00fcklemeyi g\u00f6sterelim:<\/p>\n<pre><code class=\"language-java\">public class Ogrenci {\n    String ad;\n    String soyad;\n    int ogrenciNo;\n    String bolum;\n\n    \/\/ 1. Parametresiz Yap\u0131c\u0131\n    public Ogrenci() {\n        this.ad = \"Bilinmiyor\";\n        this.soyad = \"Bilinmiyor\";\n        this.ogrenciNo = 0;\n        this.bolum = \"Bilinmiyor\";\n        System.out.println(\"Varsay\u0131lan Ogrenci nesnesi olu\u015fturuldu.\");\n    }\n\n    \/\/ 2. Sadece isim ve soyad alan yap\u0131c\u0131\n    public Ogrenci(String ad, String soyad) {\n        this.ad = ad;\n        this.soyad = soyad;\n        this.ogrenciNo = 0; \/\/ Varsay\u0131lan de\u011fer\n        this.bolum = \"Bilinmiyor\"; \/\/ Varsay\u0131lan de\u011fer\n        System.out.println(\"\u0130sim ve soyad ile Ogrenci nesnesi olu\u015fturuldu.\");\n    }\n\n    \/\/ 3. T\u00fcm bilgileri alan yap\u0131c\u0131\n    public Ogrenci(String ad, String soyad, int ogrenciNo, String bolum) {\n        this.ad = ad;\n        this.soyad = soyad;\n        this.ogrenciNo = ogrenciNo;\n        this.bolum = bolum;\n        System.out.println(\"T\u00fcm bilgilerle Ogrenci nesnesi olu\u015fturuldu.\");\n    }\n\n    public void bilgileriGoster() {\n        System.out.println(\"Ad: \" + ad + \", Soyad: \" + soyad + \", No: \" + ogrenciNo + \", B\u00f6l\u00fcm: \" + bolum);\n    }\n\n    public static void main(String[] args) {\n        Ogrenci ogrenci1 = new Ogrenci();\n        ogrenci1.bilgileriGoster();\n\n        Ogrenci ogrenci2 = new Ogrenci(\"Elif\", \"Kara\");\n        ogrenci2.bilgileriGoster();\n\n        Ogrenci ogrenci3 = new Ogrenci(\"Can\", \"Y\u0131lmaz\", 101, \"Bilgisayar M\u00fchendisli\u011fi\");\n        ogrenci3.bilgileriGoster();\n    }\n}<\/pre>\n<p><\/code><br \/>\nBu \u00f6rnekte, <code>Ogrenci<\/code> s\u0131n\u0131f\u0131, farkl\u0131 parametre listelerine sahip \u00fc\u00e7 farkl\u0131 yap\u0131c\u0131ya sahiptir. Bu, geli\u015ftiricilere <code>Ogrenci<\/code> nesnelerini farkl\u0131 ihtiya\u00e7lara g\u00f6re ba\u015flatma esnekli\u011fi sunar.<\/p>\n<h2>Varsay\u0131lan Yap\u0131c\u0131 (Default Constructor) ve Parametresiz Yap\u0131c\u0131<\/h2>\n<p>Bu iki kavram s\u0131kl\u0131kla kar\u0131\u015ft\u0131r\u0131lsa da, aralar\u0131nda \u00f6nemli bir fark vard\u0131r. Her ikisi de parametre almaz, ancak nas\u0131l ve ne zaman ortaya \u00e7\u0131kt\u0131klar\u0131 farkl\u0131d\u0131r.<\/p>\n<h3>Varsay\u0131lan Yap\u0131c\u0131 Nedir?<\/h3>\n<p>E\u011fer bir s\u0131n\u0131fta hi\u00e7bir yap\u0131c\u0131 (parametreli veya parametresiz) tan\u0131mlanmam\u0131\u015fsa, Java derleyicisi otomatik olarak herkese a\u00e7\u0131k (public) ve parametresiz, bo\u015f bir yap\u0131c\u0131 ekler. Buna \"varsay\u0131lan yap\u0131c\u0131\" denir. Bu yap\u0131c\u0131, s\u0131n\u0131f\u0131n \u00fcye de\u011fi\u015fkenlerine varsay\u0131lan de\u011ferlerini atar (say\u0131sal tipler i\u00e7in 0, boolean i\u00e7in false, referans tipleri i\u00e7in null).<\/p>\n<h3>Ne Zaman Olu\u015fturulur?<\/h3>\n<p>Varsay\u0131lan yap\u0131c\u0131, yaln\u0131zca ve yaln\u0131zca geli\u015ftirici taraf\u0131ndan hi\u00e7bir yap\u0131c\u0131 tan\u0131mlanmad\u0131\u011f\u0131nda derleyici taraf\u0131ndan olu\u015fturulur. E\u011fer siz kendi parametreli veya parametresiz yap\u0131c\u0131n\u0131z\u0131 tan\u0131mlarsan\u0131z, derleyici art\u0131k otomatik olarak varsay\u0131lan yap\u0131c\u0131y\u0131 eklemez.<\/p>\n<h3>Varsay\u0131lan Yap\u0131c\u0131n\u0131n Davran\u0131\u015f\u0131<\/h3>\n<p>Varsay\u0131lan yap\u0131c\u0131, hi\u00e7bir \u00f6zel ba\u015flatma kodu i\u00e7ermez. Sadece \u00fcst s\u0131n\u0131f\u0131n parametresiz yap\u0131c\u0131s\u0131n\u0131 \u00e7a\u011f\u0131r\u0131r (<code>super()<\/code>) ve \u00fcye de\u011fi\u015fkenlerinin varsay\u0131lan de\u011ferleriyle kalmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Parametresiz Yap\u0131c\u0131 ile Fark\u0131<\/h3>\n<table border=\"1\">\n<thead>\n<tr>\n<th>\u00d6zellik<\/th>\n<th>Varsay\u0131lan Yap\u0131c\u0131 (Default Constructor)<\/th>\n<th>Parametresiz Yap\u0131c\u0131 (No-Argument Constructor)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Olu\u015fturan<\/td>\n<td>Java Derleyicisi<\/td>\n<td>Geli\u015ftirici<\/td>\n<\/tr>\n<tr>\n<td>Ne Zaman Ortaya \u00c7\u0131kar<\/td>\n<td>S\u0131n\u0131fta hi\u00e7bir yap\u0131c\u0131 tan\u0131mlanmad\u0131\u011f\u0131nda<\/td>\n<td>Geli\u015ftirici taraf\u0131ndan a\u00e7\u0131k\u00e7a tan\u0131mland\u0131\u011f\u0131nda<\/td>\n<\/tr>\n<tr>\n<td>Ama\u00e7<\/td>\n<td>Nesne olu\u015fturmay\u0131 sa\u011flamak (minimum ba\u015flatma)<\/td>\n<td>Nesneye \u00f6zel varsay\u0131lan de\u011ferler atamak<\/td>\n<\/tr>\n<tr>\n<td>\u00d6rnek<\/td>\n<td><code>public S\u0131n\u0131fAd\u0131() {}<\/code> (derleyici taraf\u0131ndan eklenir)<\/td>\n<td><code>public S\u0131n\u0131fAd\u0131() { this.deger = \"varsay\u0131lan\"; }<\/code> (geli\u015ftirici yazar)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><code>this<\/code> Anahtar Kelimesi ve Yap\u0131c\u0131lar<\/h2>\n<p><code>this<\/code> anahtar kelimesi, Java'da mevcut nesnenin bir referans\u0131n\u0131 temsil eder. Yap\u0131c\u0131lar i\u00e7inde iki ana ama\u00e7la kullan\u0131l\u0131r: \u00fcye de\u011fi\u015fkenlerini parametrelerden gelen de\u011ferlerle ay\u0131rmak ve bir yap\u0131c\u0131n\u0131n ba\u015fka bir yap\u0131c\u0131y\u0131 \u00e7a\u011f\u0131rmas\u0131n\u0131 sa\u011flamak.<\/p>\n<h3><code>this<\/code> Referans\u0131<\/h3>\n<p>Bir yap\u0131c\u0131da, parametre isimleri ile s\u0131n\u0131f\u0131n \u00fcye de\u011fi\u015fkenlerinin isimleri ayn\u0131 oldu\u011funda belirsizlik olu\u015fabilir. <code>this<\/code> anahtar kelimesi, s\u0131n\u0131f\u0131n \u00fcye de\u011fi\u015fkenini belirtmek i\u00e7in kullan\u0131l\u0131rken, parametre do\u011frudan ismini kullanarak eri\u015filir.<\/p>\n<pre><code class=\"language-java\">public class Urun {\n    String ad;\n    double fiyat;\n\n    public Urun(String ad, double fiyat) {\n        this.ad = ad;   \/\/ 'this.ad' s\u0131n\u0131f\u0131n \u00fcye de\u011fi\u015fkeni 'ad'i ifade eder.\n        this.fiyat = fiyat; \/\/ 'fiyat' ise parametreden gelen de\u011feri ifade eder.\n    }\n\n    public void bilgileriGoster() {\n        System.out.println(\"\u00dcr\u00fcn Ad\u0131: \" + ad + \", Fiyat: \" + fiyat);\n    }\n\n    public static void main(String[] args) {\n        Urun urun = new Urun(\"Klavye\", 150.75);\n        urun.bilgileriGoster();\n    }\n}<\/pre>\n<p><\/code><br \/>\nYukar\u0131daki \u00f6rnekte, <code>this.ad<\/code> ve <code>this.fiyat<\/code> kullan\u0131larak s\u0131n\u0131f\u0131n <code>ad<\/code> ve <code>fiyat<\/code> \u00fcye de\u011fi\u015fkenleri, yap\u0131c\u0131ya gelen <code>ad<\/code> ve <code>fiyat<\/code> parametreleriyle ba\u015flat\u0131l\u0131r.<\/p>\n<h3>Yap\u0131c\u0131dan Ba\u015fka Bir Yap\u0131c\u0131y\u0131 \u00c7a\u011f\u0131rma (<code>this()<\/code>)<\/h3>\n<p><code>this()<\/code> ifadesi, bir yap\u0131c\u0131dan ayn\u0131 s\u0131n\u0131f\u0131n ba\u015fka bir yap\u0131c\u0131s\u0131n\u0131 \u00e7a\u011f\u0131rmak i\u00e7in kullan\u0131l\u0131r. Bu, yap\u0131c\u0131 a\u015f\u0131r\u0131 y\u00fcklemesi durumunda kod tekrar\u0131n\u0131 \u00f6nlemek ve daha temiz, daha s\u00fcrd\u00fcr\u00fclebilir kod yazmak i\u00e7in harika bir yoldur. <code>this()<\/code> \u00e7a\u011fr\u0131s\u0131, yap\u0131c\u0131n\u0131n ilk ifadesi olmak zorundad\u0131r.<\/p>\n<pre><code class=\"language-java\">public class Calisan {\n    String ad;\n    int id;\n    double maas;\n\n    \/\/ Tam parametreli yap\u0131c\u0131\n    public Calisan(String ad, int id, double maas) {\n        this.ad = ad;\n        this.id = id;\n        this.maas = maas;\n        System.out.println(\"T\u00fcm bilgilerle \u00e7al\u0131\u015fan olu\u015fturuldu.\");\n    }\n\n    \/\/ Sadece ad ve id alan yap\u0131c\u0131, tam parametreli yap\u0131c\u0131y\u0131 \u00e7a\u011f\u0131r\u0131r\n    public Calisan(String ad, int id) {\n        this(ad, id, 0.0); \/\/ Di\u011fer yap\u0131c\u0131y\u0131 \u00e7a\u011f\u0131r\u0131r (maas varsay\u0131lan olarak 0.0 atan\u0131r)\n        System.out.println(\"Ad ve ID ile \u00e7al\u0131\u015fan olu\u015fturuldu.\");\n    }\n\n    \/\/ Sadece ad alan yap\u0131c\u0131, ad ve id alan yap\u0131c\u0131y\u0131 \u00e7a\u011f\u0131r\u0131r\n    public Calisan(String ad) {\n        this(ad, 0); \/\/ Di\u011fer yap\u0131c\u0131y\u0131 \u00e7a\u011f\u0131r\u0131r (id varsay\u0131lan olarak 0 atan\u0131r)\n        System.out.println(\"Sadece ad ile \u00e7al\u0131\u015fan olu\u015fturuldu.\");\n    }\n\n    public void bilgileriGoster() {\n        System.out.println(\"Ad: \" + ad + \", ID: \" + id + \", Maa\u015f: \" + maas);\n    }\n\n    public static void main(String[] args) {\n        Calisan c1 = new Calisan(\"Ay\u015fe\");\n        c1.bilgileriGoster();\n\n        Calisan c2 = new Calisan(\"Mehmet\", 101);\n        c2.bilgileriGoster();\n\n        Calisan c3 = new Calisan(\"Zeynep\", 102, 7500.0);\n        c3.bilgileriGoster();\n    }\n}<\/pre>\n<p><\/code><br \/>\nBu \u00f6rnekte, daha az parametre alan yap\u0131c\u0131lar, daha fazla parametre alan yap\u0131c\u0131lar\u0131 \u00e7a\u011f\u0131rarak kod tekrar\u0131n\u0131 \u00f6nler ve varsay\u0131lan de\u011ferlerin atanmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<h2>Yap\u0131c\u0131 Zincirleme (Constructor Chaining)<\/h2>\n<p>Yap\u0131c\u0131 zincirleme, bir yap\u0131c\u0131n\u0131n, ayn\u0131 s\u0131n\u0131f\u0131n veya \u00fcst s\u0131n\u0131f\u0131n ba\u015fka bir yap\u0131c\u0131s\u0131n\u0131 \u00e7a\u011f\u0131rma i\u015flemidir. Bu mekanizma, kod tekrar\u0131n\u0131 azalt\u0131r ve nesne ba\u015flatma mant\u0131\u011f\u0131n\u0131 daha d\u00fczenli hale getirir.<\/p>\n<h3>Tan\u0131m<\/h3>\n<p>Yap\u0131c\u0131 zincirleme, bir yap\u0131c\u0131n\u0131n ba\u015flatma g\u00f6revini k\u0131smen veya tamamen ba\u015fka bir yap\u0131c\u0131ya devretmesidir. Bu, \u00f6zellikle karma\u015f\u0131k nesne hiyerar\u015filerinde veya \u00e7ok say\u0131da a\u015f\u0131r\u0131 y\u00fcklenmi\u015f yap\u0131c\u0131ya sahip s\u0131n\u0131flarda faydal\u0131d\u0131r.<\/p>\n<h3>Faydalar\u0131<\/h3>\n<ul>\n<li><b>Kod Tekrar\u0131n\u0131 Azaltma:<\/b> Ortak ba\u015flatma mant\u0131\u011f\u0131n\u0131 tek bir yap\u0131c\u0131da toplar ve di\u011fer yap\u0131c\u0131lar\u0131n bu ana yap\u0131c\u0131y\u0131 \u00e7a\u011f\u0131rmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><b>Mod\u00fclerlik:<\/b> Her yap\u0131c\u0131 kendi \u00f6zel ba\u015flatma g\u00f6revini yerine getirirken, genel ba\u015flatma mant\u0131\u011f\u0131 tek bir yerde korunur.<\/li>\n<li><b>Okunabilirlik ve Bak\u0131m Kolayl\u0131\u011f\u0131:<\/b> Kodun daha temiz ve anla\u015f\u0131l\u0131r olmas\u0131n\u0131 sa\u011flar, hatalar\u0131 bulmay\u0131 ve d\u00fczeltmeyi kolayla\u015ft\u0131r\u0131r.<\/li>\n<\/ul>\n<h3>\u0130ki T\u00fcr Zincirleme<\/h3>\n<p>Yap\u0131c\u0131 zincirleme iki ana \u015fekilde ger\u00e7ekle\u015febilir:<\/p>\n<h4>Ayn\u0131 S\u0131n\u0131f \u0130\u00e7inde Zincirleme (<code>this()<\/code>)<\/h4>\n<p>Daha \u00f6nce <code>this<\/code> anahtar kelimesi b\u00f6l\u00fcm\u00fcnde ele ald\u0131\u011f\u0131m\u0131z gibi, <code>this()<\/code> ifadesi ayn\u0131 s\u0131n\u0131f\u0131n ba\u015fka bir yap\u0131c\u0131s\u0131n\u0131 \u00e7a\u011f\u0131rmak i\u00e7in kullan\u0131l\u0131r. Bu, a\u015f\u0131r\u0131 y\u00fcklenmi\u015f yap\u0131c\u0131lar aras\u0131nda ortak ba\u015flatma mant\u0131\u011f\u0131n\u0131 payla\u015fman\u0131n en yayg\u0131n yoludur.<\/p>\n<h4>\u00dcst S\u0131n\u0131f Yap\u0131c\u0131s\u0131n\u0131 Zincirleme (<code>super()<\/code>)<\/h4>\n<p>Kal\u0131t\u0131m durumunda, alt s\u0131n\u0131f\u0131n yap\u0131c\u0131s\u0131, \u00fcst s\u0131n\u0131f\u0131n (ebeveyn s\u0131n\u0131f\u0131n) yap\u0131c\u0131s\u0131n\u0131 <code>super()<\/code> anahtar kelimesini kullanarak \u00e7a\u011f\u0131rabilir. Bu, alt s\u0131n\u0131f nesnesi olu\u015fturulmadan \u00f6nce \u00fcst s\u0131n\u0131f\u0131n ba\u015flatma mant\u0131\u011f\u0131n\u0131n y\u00fcr\u00fct\u00fclmesini sa\u011flar. <code>super()<\/code> \u00e7a\u011fr\u0131s\u0131 da yap\u0131c\u0131n\u0131n ilk ifadesi olmak zorundad\u0131r.<\/p>\n<pre><code class=\"language-java\">class Kisi {\n    String isim;\n    int yas;\n\n    public Kisi(String isim, int yas) {\n        this.isim = isim;\n        this.yas = yas;\n        System.out.println(\"Kisi nesnesi olu\u015fturuldu.\");\n    }\n\n    public void bilgileriGoster() {\n        System.out.println(\"\u0130sim: \" + isim + \", Ya\u015f: \" + yas);\n    }\n}\n\nclass Ogrenci extends Kisi {\n    String okulNo;\n\n    public Ogrenci(String isim, int yas, String okulNo) {\n        super(isim, yas); \/\/ \u00dcst s\u0131n\u0131f\u0131n (Kisi) yap\u0131c\u0131s\u0131n\u0131 \u00e7a\u011f\u0131r\u0131r\n        this.okulNo = okulNo;\n        System.out.println(\"Ogrenci nesnesi olu\u015fturuldu.\");\n    }\n\n    @Override\n    public void bilgileriGoster() {\n        super.bilgileriGoster(); \/\/ \u00dcst s\u0131n\u0131f\u0131n metodunu \u00e7a\u011f\u0131r\u0131r\n        System.out.println(\"Okul No: \" + okulNo);\n    }\n\n    public static void main(String[] args) {\n        Ogrenci ogrenci = new Ogrenci(\"Deniz\", 20, \"12345\");\n        ogrenci.bilgileriGoster();\n    }\n}<\/pre>\n<p><\/code><br \/>\nBu \u00f6rnekte, <code>Ogrenci<\/code> s\u0131n\u0131f\u0131n\u0131n yap\u0131c\u0131s\u0131, <code>super(isim, yas)<\/code> kullanarak <code>Kisi<\/code> s\u0131n\u0131f\u0131n\u0131n yap\u0131c\u0131s\u0131n\u0131 \u00e7a\u011f\u0131r\u0131r. Bu, <code>isim<\/code> ve <code>yas<\/code> alanlar\u0131n\u0131n <code>Kisi<\/code> yap\u0131c\u0131s\u0131 taraf\u0131ndan ba\u015flat\u0131lmas\u0131n\u0131 sa\u011flar ve <code>Ogrenci<\/code> yap\u0131c\u0131s\u0131n\u0131n sadece kendi \u00f6zel alan\u0131 olan <code>okulNo<\/code>'yu ba\u015flatmas\u0131 yeterli olur.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Yap\u0131c\u0131lar, nesne y\u00f6nelimli programlaman\u0131n temel ta\u015flar\u0131ndan biridir. Nesnelerin ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn ba\u015f\u0131nda, yani olu\u015fturulma an\u0131nda, do\u011fru ve tutarl\u0131 bir \u015fekilde ba\u015flat\u0131lmalar\u0131n\u0131 sa\u011flayarak, programlar\u0131n g\u00fcvenilirli\u011fini ve kararl\u0131l\u0131\u011f\u0131n\u0131 art\u0131r\u0131rlar. Parametresiz, parametreli, a\u015f\u0131r\u0131 y\u00fcklenmi\u015f yap\u0131c\u0131lar ve <code>this()<\/code>, <code>super()<\/code> gibi mekanizmalar sayesinde geli\u015ftiriciler, nesne ba\u015flatma s\u00fcre\u00e7lerini esnek, mod\u00fcler ve kod tekrar\u0131ndan ar\u0131nd\u0131r\u0131lm\u0131\u015f bir \u015fekilde y\u00f6netebilirler. Yap\u0131c\u0131lar\u0131n do\u011fru anla\u015f\u0131lmas\u0131 ve etkin kullan\u0131m\u0131, daha temiz, daha okunabilir ve daha s\u00fcrd\u00fcr\u00fclebilir yaz\u0131l\u0131m geli\u015ftirmek i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<h3>Yap\u0131c\u0131lar neden d\u00f6n\u00fc\u015f tipi belirtmez?<\/h3>\n<p>Yap\u0131c\u0131lar, bir de\u011fer d\u00f6nd\u00fcrmek yerine, yeni olu\u015fturulan nesnenin kendisini ba\u015flat\u0131r. Bu nedenle, a\u00e7\u0131k\u00e7a bir d\u00f6n\u00fc\u015f tipi (void bile) belirtmeye gerek yoktur. Zaten <code>new<\/code> anahtar kelimesiyle \u00e7a\u011fr\u0131ld\u0131klar\u0131nda, ilgili s\u0131n\u0131f\u0131n bir nesnesini d\u00f6nd\u00fcr\u00fcrler.<\/p>\n<h3>Bir s\u0131n\u0131f\u0131n birden fazla yap\u0131c\u0131s\u0131 olabilir mi?<\/h3>\n<p>Evet, yap\u0131c\u0131 a\u015f\u0131r\u0131 y\u00fckleme (constructor overloading) sayesinde bir s\u0131n\u0131f\u0131n birden fazla yap\u0131c\u0131s\u0131 olabilir. Her bir yap\u0131c\u0131n\u0131n parametre listesi (parametre say\u0131s\u0131, tipleri veya s\u0131ralamas\u0131) farkl\u0131 olmal\u0131d\u0131r.<\/p>\n<h3>Varsay\u0131lan yap\u0131c\u0131y\u0131 ne zaman kaybederiz?<\/h3>\n<p>E\u011fer bir s\u0131n\u0131fta kendi parametreli veya parametresiz yap\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131k\u00e7a tan\u0131mlarsan\u0131z, Java derleyicisi art\u0131k sizin i\u00e7in otomatik olarak varsay\u0131lan yap\u0131c\u0131y\u0131 eklemez. Bu durumda, parametresiz<\/p>\n","protected":false},"excerpt":{"rendered":"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131\nNesne y\u00f6nelimli programlaman\u0131n (NYP) kalbinde, s\u0131n\u0131flardan nesneler yaratma ve bu nesneler&#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-38913","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131\" \/>\n<meta property=\"og:description\" content=\"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131 Nesne y\u00f6nelimli programlaman\u0131n (NYP) kalbinde, s\u0131n\u0131flardan nesneler yaratma ve bu nesneler...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-10T11:30:43+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131\",\"datePublished\":\"2026-02-10T11:30:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/\"},\"wordCount\":2264,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/\",\"name\":\"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-10T11:30:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/","og_locale":"tr_TR","og_type":"article","og_title":"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131","og_description":"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131 Nesne y\u00f6nelimli programlaman\u0131n (NYP) kalbinde, s\u0131n\u0131flardan nesneler yaratma ve bu nesneler...","og_url":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-10T11:30:43+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"15 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131","datePublished":"2026-02-10T11:30:43+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/"},"wordCount":2264,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/","url":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/","name":"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-10T11:30:43+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/yapicilar-constructors-nesne-olusturmanin-temel-tasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Yap\u0131c\u0131lar (Constructors): Nesne Olu\u015fturman\u0131n Temel Ta\u015f\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38913"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38913\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}