{"id":28789,"date":"2019-09-06T10:00:13","date_gmt":"2019-09-06T07:00:13","guid":{"rendered":"https:\/\/www.natro.com\/blog\/?p=28789"},"modified":"2019-09-03T09:55:39","modified_gmt":"2019-09-03T06:55:39","slug":"nesne-tabanli-programlama-nedir-ornekleri-nelerdir","status":"publish","type":"post","link":"https:\/\/www.natro.com\/blog\/nesne-tabanli-programlama-nedir-ornekleri-nelerdir\/","title":{"rendered":"Nesne Tabanl\u0131 Programlama Nedir? \u00d6rnekleri Nelerdir?"},"content":{"rendered":"<p>Pop\u00fclerli\u011fi artan <strong>nesne tabanl\u0131 programlama<\/strong> karma\u015f\u0131k \u00f6zellikte gibi g\u00f6r\u00fcnse de asl\u0131nda nesnelere ba\u011fl\u0131 olu\u015fturulan kodlama ile derin bir etki alan\u0131na sahip denebilir.<\/p>\n<h4 id=\"nesne-tabanli-programlamada-kodlama-oncesi-tanimlama\"><strong>Nesne Tabanl\u0131 Programlamada Kodlama \u00d6ncesi Tan\u0131mlama<\/strong><\/h4>\n<p>Hayat\u0131m\u0131z\u0131 etkileyen nesneleri kodlayan programlamada \u00f6nemli olan alg\u0131lama ve tan\u0131mlama bi\u00e7imleridir. \u00a0Yeni bir model olu\u015ftururken bir a\u00e7\u0131dan hayata s\u0131f\u0131rdan ba\u015flayan birinin bak\u0131\u015f a\u00e7\u0131s\u0131 benimseniyor. Basit bir bak\u0131\u015f a\u00e7\u0131s\u0131yla, d\u0131\u015farda g\u00f6r\u00fclen cisimlerin s\u0131n\u0131fland\u0131r\u0131lmas\u0131n\u0131n yap\u0131lmas\u0131, soyut anlamda nesnelere ba\u015fvuru yaparak tasvirler bu a\u00e7\u0131dan de\u011ferlendirilebilir. Yani soyut hisler de nesnelerle simgele\u015ftirilmektedir. Ayn\u0131 mant\u0131ktan yola \u00e7\u0131k\u0131l\u0131rsa kod yazan ki\u015filer de nesnelerden faydalanarak bir \u015feyi ifade edebilir. <strong>Nesne tabanl\u0131 kodlama<\/strong> da bu nedenle bu ismi alm\u0131\u015ft\u0131r.<\/p>\n<h4 id=\"nesne-tabanli-programlama-kurallari\"><strong>Nesne Tabanl\u0131 Programlama Kurallar\u0131<\/strong><\/h4>\n<p>Nesne tabanl\u0131 programlama uygulamalar\u0131na ba\u015flarken 4 kural belirlenmi\u015ftir; kaps\u00fclleme, soyutlama, kal\u0131t\u0131m ve \u00e7ok bi\u00e7imlilik olarak s\u0131ralanabilir.<\/p>\n<ul>\n<li>Kaps\u00fclleme kural\u0131; ileti\u015fim halindeki mant\u0131ksal nesnelerin kendi \u00f6zel durumunu s\u0131n\u0131f i\u00e7inde tutmas\u0131 olarak a\u00e7\u0131klanabilir. \u00d6teki nesnelerin do\u011frudan eri\u015fimi yoktur fakat y\u00f6ntemlerle ortak i\u015flev liste \u00e7a\u011fr\u0131s\u0131 olur. Nesne, y\u00f6ntemlerle durumunu y\u00f6netir ve izin olmad\u0131\u011f\u0131 s\u00fcrece di\u011fer s\u0131n\u0131flar dokunamayacakt\u0131r. Y\u00f6ntemleri kullanmak, ileti\u015fim i\u00e7in \u015fartt\u0131r.<\/li>\n<li>Soyutlama; kaps\u00fcllemeye ba\u011fl\u0131 do\u011fal bir uzant\u0131 gibidir. Nesnelerin birbirlerine ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 sorunu ortaya \u00e7\u0131kt\u0131\u011f\u0131 i\u00e7in soyutlaman\u0131n sa\u011flanmas\u0131 gerekmektedir. B\u00fcy\u00fck bir mekanizma d\u00fc\u015f\u00fcn\u00fcl\u00fcrse, kendi i\u00e7erisinde ayr\u0131nt\u0131lar\u0131 saklayarak di\u011fer nesnelerle i\u015flemler yap\u0131l\u0131r. Nesne tabanl\u0131 tasar\u0131mlarda programlar fazla b\u00fcy\u00fck olunca bu durumun soyutlama gereklili\u011fi do\u011facakt\u0131r. \u00c7ok fazla birbiriyle ileti\u015fimin soruna d\u00f6n\u00fc\u015fmesini engellemek i\u00e7in soyutlama gerekli bir \u00e7\u00f6z\u00fcmd\u00fcr. \u00c7ok say\u0131da donan\u0131m\u0131 bulunan bir masa \u00fcst\u00fc kasas\u0131 ele al\u0131n\u0131rsa, bir d\u00fc\u011fme ile monit\u00f6r\u00fcn\u00fczdeki uygulamalara ula\u015fabilirsiniz. Arka planda, d\u00fc\u011fmenin gerisindeki olup bitenlere \u00e7ok odaklanmazs\u0131n\u0131z. Ancak di\u011fer par\u00e7alar\u0131n birbirinden ba\u011f\u0131ms\u0131z \u00e7al\u0131\u015farak b\u00fcy\u00fck bir mekanizmay\u0131 olu\u015fturdu\u011fu bir durum vard\u0131r.<\/li>\n<li>Kal\u0131t\u0131m kural\u0131; <strong>nesne tabanl\u0131 programlama kurallar\u0131<\/strong> i\u00e7inde nesne benzerli\u011fi sorusu i\u00e7in bulunan bir \u00e7\u00f6z\u00fcmd\u00fcr. B\u00fct\u00fcn i\u015flemlerdeki nesnelerin birbirine benzerli\u011finde ortak mant\u0131\u011f\u0131n da neden oldu\u011fu bir durum vard\u0131r. Ortak bir mant\u0131\u011f\u0131n yeniden kullan\u0131lmas\u0131 i\u00e7in kal\u0131t\u0131m yolu kullan\u0131lmaktad\u0131r. Ayr\u0131ca buna ba\u011fl\u0131 benzersiz mant\u0131\u011f\u0131 farkl\u0131 bir s\u0131n\u0131fta kullanmam\u0131z\u0131n yolu alt s\u0131n\u0131f olu\u015fturmakla alakal\u0131d\u0131r. Ana s\u0131n\u0131f, alt s\u0131n\u0131f, buna ba\u011fl\u0131 b\u00fct\u00fcn alanlar sayesinde benzersizlik sa\u011flanm\u0131\u015f olur.<\/li>\n<li>\u00c7ok bi\u00e7imlilik kural\u0131, ana s\u0131n\u0131f ve alt s\u0131n\u0131flar\u0131n kar\u0131\u015f\u0131m\u0131n\u0131n oldu\u011fu bir durumda bir liste kullan\u0131laca\u011f\u0131 zaman \u00e7ok bi\u00e7imlilik devreye girmektedir. Baz\u0131 hallerde ebeveyn s\u0131n\u0131f i\u00e7in kullan\u0131lan b\u00f6l\u00fcmleri bir alt s\u0131n\u0131f i\u00e7in uygulamak gerekti\u011fi zamanda \u00e7ok bi\u00e7imlilik devreye girecektir. Yani alt s\u0131n\u0131flar\u0131n y\u00f6ntemi korunurken di\u011fer s\u0131n\u0131f kullan\u0131m\u0131 sa\u011flanm\u0131\u015f olur. Bu uygulama i\u00e7in \u00e7ok say\u0131da ortak y\u00f6ntem s\u00f6z konusudur ve kendi versiyonlar\u0131n\u0131 uygulayan bir s\u0131n\u0131f s\u00f6z konusudur.<\/li>\n<\/ul>\n<h4 id=\"nesne-tabanli-programlama-ornekleri\"><strong>\u00a0Nesne Tabanl\u0131 Programlama \u00d6rnekleri<\/strong><\/h4>\n<p><strong>\u00a0Nesne tabanl\u0131 programlama \u00f6rnekleri<\/strong> internet \u00fczerinden PDF ve di\u011fer formatlarda \u00e7ok say\u0131da bulunabilir. \u00a0Bu \u00f6rneklerde kodlama t\u00fcrlerini alt alta g\u00f6rebilir, inceleyebilirsiniz.<\/p>\n","protected":false},"excerpt":{"rendered":"Pop\u00fclerli\u011fi artan nesne tabanl\u0131 programlama karma\u015f\u0131k \u00f6zellikte gibi g\u00f6r\u00fcnse de asl\u0131nda nesnelere ba\u011fl\u0131 olu\u015fturulan kodlama ile derin bir&hellip;\n","protected":false},"author":7,"featured_media":28790,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[389],"tags":[],"class_list":{"0":"post-28789","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-donanim-yazilim"},"_links":{"self":[{"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/posts\/28789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/comments?post=28789"}],"version-history":[{"count":0,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/posts\/28789\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/media\/28790"}],"wp:attachment":[{"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/media?parent=28789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/categories?post=28789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.natro.com\/blog\/wp-json\/wp\/v2\/tags?post=28789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}