{"id":17670,"date":"2021-09-23T08:00:00","date_gmt":"2021-09-23T05:00:00","guid":{"rendered":"https:\/\/mobidictum.com\/?p=17670"},"modified":"2023-04-25T10:49:52","modified_gmt":"2023-04-25T07:49:52","slug":"unity-3d-nesne-yonelimli-programlama-nesne-nedir","status":"publish","type":"post","link":"https:\/\/mobidictum.com\/tr\/unity-3d-nesne-yonelimli-programlama-nesne-nedir\/","title":{"rendered":"Unity 3D ile Nesne Y\u00f6nelimli Programlama 01: Nesne Nedir?"},"content":{"rendered":"\n<p>Unity ile Nesne Y\u00f6nelimli Programlama yaz\u0131 serisi ile birlikte Mobidictum \u00fczerinden ba\u015flayaca\u011f\u0131m\u0131z bir ser\u00fcvenden herkese merhaba.<\/p>\n\n\n\n\n\n<p>Bir programlama dili\u00a0 \u00f6\u011frenirken hep ayn\u0131 benzer ad\u0131mlarla ba\u015flan\u0131r: De\u011fi\u015fken nedir? De\u011fi\u015fken tipleri nedir? Operat\u00f6rler nedir? Ko\u015ful ifadeleri nelerdir? D\u00f6ng\u00fcler nelerdir, nas\u0131l kullan\u0131l\u0131r? Metod nedir? \u015eeklinde uzay\u0131p giden \u00f6\u011frenme ad\u0131mlar\u0131 vard\u0131r. Birde en \u00f6nemlisi algoritma olu\u015fturmakt\u0131r.<\/p>\n\n\n\n<p>Yeni bir dil \u00f6\u011frenece\u011finiz zaman isterseniz bu ad\u0131mlar\u0131 yine takip edebilirsiniz. Fakat her dilde bunlar\u0131n ayn\u0131 veya benzer oldu\u011funu g\u00f6rd\u00fc\u011f\u00fcn\u00fczde \u00f6\u011frenme s\u00fcreci s\u0131k\u0131c\u0131 olabiliyor. Programlamaya yeni ba\u015flayan hevesli baz\u0131 arkada\u015flar\u0131m\u0131z ise bu en temel konular\u0131 basit g\u00f6r\u00fcp atlamay\u0131 tercih edebiliyorlar ve ilerleyen zamanlarda b\u00fcy\u00fck zorluklar ya\u015f\u0131yorlar. Bu temel konular\u0131 alfabenin harfleri, programlamay\u0131 da okuyaca\u011f\u0131n\u0131z bir paragraf yaz\u0131 olarak g\u00f6rebilirsiniz.<\/p>\n\n\n\n<p>Benim bu seriye ba\u015flarken hedefim alfabenin harflerinden de\u011fil paragraftan ba\u015flayarak programlama bilgimi ve tecr\u00fcbelerimi aktarmak olacak. Harfleri ise yeri geldik\u00e7e sizlere anlatmaya \u00e7al\u0131\u015faca\u011f\u0131m.<\/p>\n\n\n\n<p>C# ile Unity3D i\u00e7erisinde OOP prensiplerini nas\u0131l kullan\u0131r\u0131z bunlar\u0131 anlataca\u011f\u0131m. Programlama yaparken d\u00fc\u015f\u00fcnce \u015feklimi size aktarmaya \u00e7al\u0131\u015faca\u011f\u0131m.<\/p>\n\n\n\n<p>Burada anlatacaklar\u0131m\u0131n size bir yol g\u00f6stermesini umut ediyorum. Yine de i\u015fin b\u00fcy\u00fck k\u0131sm\u0131 sizin \u00f6\u011frenme arzunuza ba\u011fl\u0131. \u00d6\u011freneceklerinizi, merak ettiklerinizi tek bir kayna\u011fa ba\u011fl\u0131 kalmadan ara\u015ft\u0131rman\u0131z gerekti\u011fini unutmay\u0131n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Nesne Nedir?<\/strong><\/h2>\n\n\n\n<p>G\u00fcnl\u00fck hayatta g\u00f6rd\u00fc\u011f\u00fcm\u00fcz her \u015feye nesne diyebiliriz. Kur\u015fun Kalem, K\u0131rm\u0131z\u0131 Defter, Tekir Kedi, Sar\u0131 Elma vs. G\u00f6rd\u00fc\u011f\u00fcm\u00fcz her nesneyi di\u011ferlerinden ay\u0131rt etmek i\u00e7in bu nesnelerin \u00f6zelliklerini kullan\u0131r\u0131z. Hangi elma?<\/p>\n\n\n\n<p>\u2013 Sar\u0131 elma veya k\u0131rm\u0131z\u0131 elma veya soldaki ye\u015fil elma veya soldan \u00fc\u00e7\u00fcnc\u00fc k\u0131rm\u0131z\u0131 elma gibi.<\/p>\n\n\n\n<p>Programlama yaparken yaratt\u0131\u011f\u0131m\u0131z her class bir nesnedir. Classlarda yaratt\u0131\u011f\u0131m\u0131z de\u011fi\u015fkenler ve metotlar (fonksiyonlar) ile nesnelerin \u00f6zelliklerini belirtiriz. Neler yapt\u0131klar\u0131n\u0131 kontrol ederiz.<\/p>\n\n\n\n<p>\u00d6rnek olarak uyuyan tekir kedi.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">public class Cat\n{\n\tprivate string _catType = \"tekir\";\n\tprivate bool _isSleep = true;\n}\n<\/pre>\n\n\n\n<p>Kedi; t\u0131rmanabilir, ko\u015fabilir, uyuyabilir, yemek yiyebilir vs.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">public class Cat\n{\n\tprivate string _catType = \"tekir\";\n\tprivate bool _isSleep;\n\n\tpublic void Climb()\n\t{\n\t}\n\n\tpublic void Run()\n\t{\n\t}\n\n\tpublic void Sleep()\n\t{\n\t}\n\tpublic void Eat()\n\t{\n\t}\n}\n<\/pre>\n\n\n\n<p>Verileri saklayan ve bu veriler \u00fczerinden i\u015flemler yaparak nesnenin \u00f6zelliklerini bize g\u00f6steren bile\u015fenlere <strong>Nesne (Object)<\/strong> denir. De\u011fi\u015fkenler ve metotlar\u0131 saklayan bile\u015fenlere <strong>Class (S\u0131n\u0131f)<\/strong> denir. Classlar nesnelerin \u00f6zelliklerini ve i\u015flevlerini de\u011fi\u015fkenler ve metotlar ile g\u00f6sterir. Yaratt\u0131\u011f\u0131n\u0131z her class (nesne) i\u00e7in haf\u0131zada yer ayr\u0131l\u0131r.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Nesne Y\u00f6nelimli Programlama (OOP) Nedir?<\/strong><\/h2>\n\n\n\n<p>Kedi \u00f6rne\u011finde g\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi kullanaca\u011f\u0131m\u0131z nesnelerin bilgisayar ortam\u0131na \u00f6zelliklerinin aktar\u0131larak programlaman\u0131n bu nesneler ile belirli kurallar i\u00e7erisinde kullan\u0131m\u0131na <strong>Nesne Y\u00f6nelimli Programlama (Object Oriented Programming)<\/strong> denir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Neden OOP?<\/strong><\/h2>\n\n\n\n<p>Programlama esnas\u0131nda yeni bir \u00f6zellik ve\/veya i\u015flev eklemek istedi\u011fimizde t\u00fcm programda de\u011fi\u015fiklik yapmak yerine sadece ilgili nesnenin class\u0131nda de\u011fi\u015fiklik yap\u0131lmas\u0131n\u0131 sa\u011flar. Nesneler birbirinden ba\u011f\u0131ms\u0131z oldu\u011fu i\u00e7in istedi\u011fimiz bilgiyi gizleyebilir eri\u015fimini s\u0131n\u0131rlayabiliriz.<\/p>\n\n\n\n<p>Yaratt\u0131\u011f\u0131m\u0131z bir class\u0131 farkl\u0131 bir projede kullanabilir ve ayn\u0131 kodlar\u0131 tekrar tekrar yazmayarak zamandan kazanmam\u0131z\u0131 sa\u011flayabiliriz. Verimlili\u011fi artt\u0131rm\u0131\u015f oluruz. Uzun kodlar\u0131n tekrar yaz\u0131lmas\u0131n\u0131n \u00f6n\u00fcne ge\u00e7mi\u015f olup, k\u0131sa kodlamalar ile nesnelerin i\u015flevlerini \u00e7al\u0131\u015ft\u0131rabiliriz.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>OOP \u00d6zellikleri<\/strong><\/h2>\n\n\n\n<p>OOP de 4 temel \u00f6zellik bulunmaktad\u0131r:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Abstraction (Soyutlama)<\/strong><\/li><li><strong>Encapsulation (Kaps\u00fclleme)<\/strong><\/li><li><strong>Inheritance (Miras Alma)<\/strong><\/li><li><strong>Polymorphism (\u00c7ok Bi\u00e7imlilik)<\/strong><\/li><\/ol>\n\n\n\n<p>Bir sonraki yaz\u0131m\u0131zda bu \u00f6zellikleri incelemeye ba\u015flamadan \u00f6nce Class\u2019\u0131 ve Nesne Class aras\u0131ndaki ili\u015fkiyi biraz daha detayl\u0131 inceleyece\u011fiz.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Neler \u00d6\u011frendik?<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Nesne (Object) nedir?<\/li><li>Nesne Y\u00f6nelimli Programlama (Object Oriented Programming) nedir ve \u00f6zellikleri.<\/li><li>Neden OOP yakla\u015f\u0131m\u0131yla programlama yapar\u0131z.<\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unity 3D ile Nesne Y\u00f6nelimli Programlama yaz\u0131 serisinde nesne nedir, OOP nedir, OOP&#8217;nin temel \u00f6zellikleri nelerdir sorular\u0131n\u0131 yan\u0131tl\u0131yoruz.<\/p>\n","protected":false},"author":50,"featured_media":17674,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[8875],"tags":[],"class_list":["post-17670","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-akademi"],"acf":[],"_links":{"self":[{"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/posts\/17670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/comments?post=17670"}],"version-history":[{"count":1,"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/posts\/17670\/revisions"}],"predecessor-version":[{"id":152072,"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/posts\/17670\/revisions\/152072"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/media\/17674"}],"wp:attachment":[{"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/media?parent=17670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/categories?post=17670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mobidictum.com\/tr\/wp-json\/wp\/v2\/tags?post=17670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}