{"id":1749,"date":"2022-01-18T14:21:47","date_gmt":"2022-01-18T14:21:47","guid":{"rendered":"http:\/\/berenkudaygorun.com\/blog\/?p=1749"},"modified":"2022-01-18T14:21:47","modified_gmt":"2022-01-18T14:21:47","slug":"kotlin-inner-ve-nested-classlar-android-eski-notlar-20","status":"publish","type":"post","link":"https:\/\/berenkudaygorun.com\/blog\/blog\/2022\/01\/18\/kotlin-inner-ve-nested-classlar-android-eski-notlar-20\/","title":{"rendered":"Kotlin Inner ve Nested Classlar \u2013 Android Eski Notlar #20"},"content":{"rendered":"<p>\u0130\u00e7 i\u00e7e class'lar JAVA'da oldu\u011fu gibi Kotlin'de de tan\u0131mlayabiliyoruz. A\u015fa\u011f\u0131daki \u00f6rne\u011fe bakal\u0131m.<\/p>\n<pre><code class=\"language-kt\">package nestedVeInner\n\nfun main(args: Array&lt;String&gt;) {\n    var inner = Outter.Inner().testInner(&quot;test&quot;)\n}\n\nclass Outter &lt;T&gt;{\n    var t1 : T? = null\n\n    class Inner{\n\n        fun &lt;T&gt; testInner(v1 : T)\n        {\n            println(&quot;Test ba\u015far\u0131l\u0131: ${v1}&quot;)\n        }\n    }\n}<\/code><\/pre>\n<p>Burada Inner class'\u0131n i\u00e7indeyken Outter class'\u0131n elemanlar\u0131na eri\u015fememekteyiz. Bu sorunu \u00e7\u00f6zmek i\u00e7in kotlin'de <code>inner<\/code> anahtar kelimesi kullan\u0131lmaktad\u0131r. Kodlar\u0131m\u0131z\u0131 a\u015fa\u011f\u0131daki gibi de\u011fi\u015ftirebilir ve sonu\u00e7lar\u0131 elde edebiliriz.<\/p>\n<pre><code class=\"language-kt\">package nestedVeInner\n\nfun main(args: Array&lt;String&gt;) {\n    var inner = Outter&lt;String&gt;(&quot;test&quot;).Inner().testInner(&quot;test&quot;)\n}\n\nclass Outter &lt;T&gt;(val t1 : T){\n\n    inner class Inner{\n\n        fun &lt;T&gt; testInner(v1 : T)\n        {\n            println(&quot;Test ba\u015far\u0131l\u0131: ${v1}&quot;)\n            println(&quot;Ana class: ${t1}&quot;)\n        }\n    }\n}<\/code><\/pre>\n<pre><code>Test ba\u015far\u0131l\u0131: test\nAna class: test<\/code><\/pre>\n<p>Direkt olarak bir \u00f6rnek \u00fczerinde g\u00f6rd\u00fck. Peki bunu nerelerde kullanabiliriz? Mant\u0131ksal a\u00e7\u0131dan ayn\u0131 i\u015flemleri ger\u00e7ekle\u015ftiren class'lar\u0131 bir arada tutmak i\u00e7in kullan\u0131labilir ve daha kolay y\u00f6netilmesini sa\u011flayabilir. Asl\u0131nda inner class'lar <strong>Non-static nested class<\/strong> olarak isimlendirilir. Bu y\u00fczde ilk \u00f6rnekte <code>Outter.Inner().testInner(&quot;test&quot;)<\/code> \u015feklinde eri\u015febilirken, nested class'\u0131m\u0131z\u0131 inner class yapt\u0131ktan sonra <code>Outter&lt;String&gt;(&quot;test&quot;).Inner().testInner(&quot;test&quot;)<\/code> olarak eri\u015fim sa\u011flad\u0131k.<\/p>\n<p>Ekstra olarak gerekirse kotlinde bir interface i\u00e7erisinde nested class tan\u0131mlayabiliriz. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0130\u00e7 i\u00e7e class&#8217;lar JAVA&#8217;da oldu\u011fu gibi Kotlin&#8217;de de tan\u0131mlayabiliyoruz. A\u015fa\u011f\u0131daki \u00f6rne\u011fe bakal\u0131m. package nestedVeInner fun main(args: Array&lt;String&gt;) { var inner = Outter.Inner().testInner(&quot;test&quot;) } class Outter&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/berenkudaygorun.com\/blog\/blog\/2022\/01\/18\/kotlin-inner-ve-nested-classlar-android-eski-notlar-20\/\">Devam\u0131n\u0131 oku<span class=\"screen-reader-text\">Kotlin Inner ve Nested Classlar \u2013 Android Eski Notlar #20<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[363,652],"tags":[],"class_list":["post-1749","post","type-post","status-publish","format-standard","hentry","category-android","category-kotlin","entry"],"_links":{"self":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts\/1749","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/comments?post=1749"}],"version-history":[{"count":2,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts\/1749\/revisions"}],"predecessor-version":[{"id":1757,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/posts\/1749\/revisions\/1757"}],"wp:attachment":[{"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/media?parent=1749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/categories?post=1749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/berenkudaygorun.com\/blog\/wp-json\/wp\/v2\/tags?post=1749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}