1+ ### Sınıf Çalışması: Doğum günü kutlaması  
12``` java 
23/* ----------------------------------------------------------------------------------------------------------------------
34 Sınıf Çalışması: Klavyeden alınan gün, ay ve yıl bilgilerine göre kişinin doğum günü geçmişse 
@@ -672,6 +673,7 @@ public enum Month {
672673 JAN , FEB , MAR , APR , MAY , JUN , JUL , AUG , SEP , OCT , NOV , DEC 
673674}
674675``` 
676+ ### LocalDate sınıfının of metotları  
675677``` java 
676678/* ----------------------------------------------------------------------------------------------------------------------
677679 LocalDate sınıfının of metotları 
@@ -692,6 +694,7 @@ class App {
692694 }
693695}
694696``` 
697+ ### LocalDate sınıfının Month parametreli ctor elemanı  
695698``` java 
696699/* ----------------------------------------------------------------------------------------------------------------------
697700 LocalDate sınıfının Month parametreli ctor elemanı 
@@ -713,6 +716,7 @@ class App {
713716 }
714717}
715718``` 
719+ ### LocalDate sınıfı (ve tüm diğer Java 8 tarih-zaman sınıfları) geçerlilik kontrolü yapar.  
716720``` java 
717721/* ----------------------------------------------------------------------------------------------------------------------
718722 LocalDate sınıfı (ve tüm diğer Java 8 tarih-zaman sınıfları) geçerlilik kontrolü yapar. Bu sınıflar geçerli olmayan 
@@ -735,6 +739,7 @@ class App {
735739 }
736740}
737741``` 
742+ ### LocalDate sınıfının now iismli static metodu sistemin tarih bilgisini elde etmekte kullanılır  
738743``` java 
739744/* ----------------------------------------------------------------------------------------------------------------------
740745 LocalDate sınıfının now iismli static metodu sistemin tarih bilgisini elde etmekte kullanılır 
@@ -755,6 +760,7 @@ class App {
755760 }
756761}
757762``` 
763+ ### LocalDate sınıfının isAfter ve isBefore metotları  
758764``` java 
759765/* ----------------------------------------------------------------------------------------------------------------------
760766 LocalDate sınıfının isAfter ve isBefore metotları 
@@ -777,6 +783,7 @@ class App {
777783 }
778784}
779785``` 
786+ ### ChronoUnit enum sınıfı ile tarih-zaman ölçümleri yapılabilir  
780787``` java 
781788/* ----------------------------------------------------------------------------------------------------------------------
782789 ChronoUnit enum sınıfı ile tarih-zaman ölçümleri yapılabilir 
@@ -801,6 +808,7 @@ class App {
801808 }
802809}
803810``` 
811+ ### Sınıf Çalışması: Doğum günü kutlaması (2)  
804812``` java 
805813/* ----------------------------------------------------------------------------------------------------------------------
806814 Sınıf Çalışması: Klavyeden alınan gün, ay ve yıl bilgilerine göre kişinin doğum günü geçmişse 
@@ -908,6 +916,7 @@ class BirthDateInfo {
908916 }
909917}
910918``` 
919+ ### LocalDate sıfınının plusXXX metotları  
911920``` java 
912921/* ----------------------------------------------------------------------------------------------------------------------
913922 LocalDate sıfınının plusXXX metotları 
@@ -929,6 +938,7 @@ class App {
929938 }
930939}
931940``` 
941+ ### LocalDate sıfınının metotları ile zincir çağırma yapılabilir  
932942``` java 
933943/* ----------------------------------------------------------------------------------------------------------------------
934944 LocalDate sıfınının metotları ile zincir çağırma yapılabilir 
@@ -950,6 +960,7 @@ class App {
950960 }
951961}
952962``` 
963+ ### LocalTime sınıfının atDate metodu  
953964``` java 
954965/* ----------------------------------------------------------------------------------------------------------------------
955966 LocalTime sınıfının atDate metodu 
@@ -972,6 +983,7 @@ class App {
972983 }
973984}
974985``` 
986+ ### LocalDate sınıfının atTime metodu  
975987``` java 
976988/* ----------------------------------------------------------------------------------------------------------------------
977989 LocalDate sınıfının atTime metodu 
@@ -995,6 +1007,7 @@ class App {
9951007 }
9961008}
9971009``` 
1010+ ### Sınıf Çalışması  
9981011``` java 
9991012/* ----------------------------------------------------------------------------------------------------------------------
10001013 Sınıf Çalışması: 17.08.1999 tarihinde 03:02:00 zamanında gerçekleşmiş olan büyük depremden bu zamana kadar geçen 
@@ -1036,6 +1049,7 @@ public final class BigEarthquakeRemainderApp {
10361049 }
10371050}
10381051``` 
1052+ ### LocalDateTime sınıfının toLocalDate ve toLocalTime sınıfları  
10391053``` java 
10401054/* ----------------------------------------------------------------------------------------------------------------------
10411055 LocalDateTime sınıfının toLocalDate ve toLocalTime sınıfları 
@@ -1059,6 +1073,7 @@ class App {
10591073 }
10601074}
10611075``` 
1076+ ### DateTimeUtil sınıfı ve test kodu  
10621077``` java 
10631078/* ----------------------------------------------------------------------------------------------------------------------
10641079 DateTimeUtil sınıfı ve test kodu 
@@ -1131,6 +1146,7 @@ public final class DateTimeUtil {
11311146 }
11321147}
11331148``` 
1149+ ### Java'da içiçe tür bildirimleri (nested types):  
11341150``` java 
11351151/* ----------------------------------------------------------------------------------------------------------------------
11361152 Java'da içiçe tür bildirimleri (nested types): 
@@ -1145,11 +1161,13 @@ public final class DateTimeUtil {
11451161 yapılabilmesini sağlayan "Lambda ifadeleri ve metot referansları" konusu ileride detaylı olarak ele alınacaktır 
11461162----------------------------------------------------------------------------------------------------------------------*/  
11471163``` 
1164+ ### Hiç bir tür içerisinde bulunmayan bir sınıfa "top-level class" denir  
11481165``` java 
11491166/* ----------------------------------------------------------------------------------------------------------------------
11501167 Hiç bir tür içerisinde bulunmayan bir sınıfa "top-level class" denir 
11511168----------------------------------------------------------------------------------------------------------------------*/  
11521169``` 
1170+ ### Top-level class'lar static olarak bildirilemez  
11531171``` java 
11541172/* ----------------------------------------------------------------------------------------------------------------------
11551173 Top-level class'lar static olarak bildirilemez 
@@ -1159,6 +1177,7 @@ static class Sample { //error
11591177}
11601178
11611179``` 
1180+ ### Bir sınıf içerisinde başka bir sınıf static olarak bildirilebilir.  
11621181``` java 
11631182/* ----------------------------------------------------------------------------------------------------------------------
11641183 Bir sınıf içerisinde başka bir sınıf static olarak bildirilebilir. Bu durumda içteki sınıf dıştaki sınıfın bir 
@@ -1186,6 +1205,7 @@ class A {
11861205 }
11871206}
11881207``` 
1208+ ### static sınıfların da elemanları olabilir.  
11891209``` java 
11901210/* ----------------------------------------------------------------------------------------------------------------------
11911211 static sınıfların da elemanları olabilir. static bir sınıfa sınıf dışından onu kapsayan sınıf ismi ve nokta 
@@ -1222,6 +1242,7 @@ class A {
12221242
12231243}
12241244``` 
1245+ ### static sınıflar static elemanlar olduğundan import static bildirimi ile isimleri doğrudan kullanılabilir.  
12251246``` java 
12261247/* ----------------------------------------------------------------------------------------------------------------------
12271248 static sınıflar static elemanlar olduğundan import static bildirimi ile isimleri doğrudan kullanılabilir. 
@@ -1258,6 +1279,7 @@ class A {
12581279 }
12591280}
12601281``` 
1282+ ### Kapsayan sınıfta static sınıfın elemanlarına erişilebilir  
12611283``` java 
12621284/* ----------------------------------------------------------------------------------------------------------------------
12631285 Kapsayan sınıfta static sınıfın elemanlarına erişilebilir 
@@ -1299,6 +1321,7 @@ class A {
12991321 }
13001322}
13011323``` 
1324+ ### Kapsayan sınıfta static sınıfın private elemanlarına da erişilebilir  
13021325``` java 
13031326/* ----------------------------------------------------------------------------------------------------------------------
13041327 Kapsayan sınıfta static sınıfın private elemanlarına da erişilebilir 
@@ -1340,6 +1363,7 @@ class A {
13401363 }
13411364}
13421365``` 
1366+ ### static sınıf kapsayan sınıfın private elemanlarına erişebilir  
13431367``` java 
13441368/* ----------------------------------------------------------------------------------------------------------------------
13451369 static sınıf kapsayan sınıfın private elemanlarına erişebilir 
@@ -1385,6 +1409,7 @@ class A {
13851409 }
13861410}
13871411``` 
1412+ ### Aşağıdaki durumda B sınıfının foo metodu kendisini çağırdığından exception oluşur  
13881413``` java 
13891414/* ----------------------------------------------------------------------------------------------------------------------
13901415 Aşağıdaki durumda B sınıfının foo metodu kendisini çağırdığından exception oluşur 
@@ -1415,6 +1440,7 @@ class A {
14151440 }
14161441}
14171442``` 
1443+ ### Yukarıdaki problem aşağıdaki gibi çözülebilir  
14181444``` java 
14191445/* ----------------------------------------------------------------------------------------------------------------------
14201446 Yukarıdaki problem aşağıdaki gibi çözülebilir 
@@ -1445,6 +1471,7 @@ class A {
14451471 }
14461472}
14471473``` 
1474+ ### Aşağıdaki bar çağrısı doğrudan yapılmıştır.  
14481475``` java 
14491476/* ----------------------------------------------------------------------------------------------------------------------
14501477 Aşağıdaki bar çağrısı doğrudan yapılmıştır. Bu durumda bar ismi B sınıfında bulunmadığından onu kapsayan A sınıfına 
@@ -1476,6 +1503,7 @@ class A {
14761503 }
14771504}
14781505``` 
1506+ ### Android programalamada kullanılan meşhur R sınıfı  
14791507``` java 
14801508/* ----------------------------------------------------------------------------------------------------------------------
14811509 Android programalamada kullanılan meşhur R sınıfı, içerisinde static bildirilmiş sınıflar olacak şekilde 
@@ -1545,6 +1573,7 @@ class R {
15451573 // ...
15461574}
15471575``` 
1576+ ### Bir sınıf içerisinde non-static bildirilmiş bir sınıf olabilir (inner class)  
15481577``` java 
15491578/* ----------------------------------------------------------------------------------------------------------------------
15501579 Bir sınıf içerisinde non-static bildirilmiş bir sınıf olabilir (inner class) 
@@ -1557,6 +1586,7 @@ class A {
15571586 }
15581587}
15591588``` 
1589+ ### inner class'ın static elemanları olamaz  
15601590``` java 
15611591/* ----------------------------------------------------------------------------------------------------------------------
15621592 inner class'ın static elemanları olamaz 
@@ -1571,6 +1601,7 @@ class A {
15711601 }
15721602}
15731603``` 
1604+ ### inner class türünden bir nesne kapsadığı sınıf dışında referans.new sentaksı ile yaratılabilir.  
15741605``` java 
15751606/* ----------------------------------------------------------------------------------------------------------------------
15761607 inner class türünden bir nesne kapsadığı sınıf dışında <referans>.new sentaksı ile yaratılabilir. Yani bir inner class 
@@ -1602,6 +1633,7 @@ class A {
16021633 }
16031634}
16041635``` 
1636+ ### non-static bildirilmiş bir sınıf içerisinde o nesnenin ilişkin olduğu kapsayan sınıf nesnesinin non-static veri elemanlarına doğrudan erişilebilir  
16051637``` java 
16061638/* ----------------------------------------------------------------------------------------------------------------------
16071639 non-static bildirilmiş bir sınıf içerisinde o nesnenin ilişkin olduğu kapsayan sınıf nesnesinin non-static veri 
@@ -1640,6 +1672,7 @@ class A {
16401672 }
16411673}
16421674``` 
1675+ ### Anahtar Notlar: static ve non-static sınıflar için derleyici ürettiği arakod isimlendirmesinde kapsayan sınıf ismini de dahil eder.  
16431676``` java 
16441677/* ----------------------------------------------------------------------------------------------------------------------
16451678 Anahtar Notlar: static ve non-static sınıflar için derleyici ürettiği arakod isimlendirmesinde kapsayan sınıf 
@@ -1653,6 +1686,7 @@ class A {
16531686 bildirimi için B ister static ister non-static olsun, B'nin byte kodu A$B.class dosyası biçiminde yaratılır 
16541687----------------------------------------------------------------------------------------------------------------------*/  
16551688``` 
1689+ ### inner class içerisinde A nın static metotları da doğrudan çağrılabilir  
16561690``` java 
16571691/* ----------------------------------------------------------------------------------------------------------------------
16581692 inner class içerisinde A nın static metotları da doğrudan çağrılabilir 
@@ -1683,6 +1717,7 @@ class A {
16831717 }
16841718}
16851719``` 
1720+ ### Aşağıdaki örnekte B'nin foo metodu içerisinde kendisini çağırmaması için A sınıfının foo metodu çağrısında sınıf ismi kullanılmıştır  
16861721``` java 
16871722/* ----------------------------------------------------------------------------------------------------------------------
16881723 Aşağıdaki örnekte B'nin foo metodu içerisinde kendisini çağırmaması için A sınıfının foo metodu 
@@ -1714,6 +1749,7 @@ class A {
17141749 }
17151750}
17161751``` 
1752+ ### Tekrar: "non-static bir metoda metodu çağırmakta kullanılan referans gizlice geçirilir"  
17171753``` java 
17181754/* ----------------------------------------------------------------------------------------------------------------------
17191755 Tekrar: Arakod düzeyinde non-stati metot kavramı doğrudan yoktur. Tüm metotlar static metotlara dönüştürülür. 
@@ -1755,6 +1791,7 @@ class Sample {
17551791 }
17561792}
17571793``` 
1794+ ### Tekrar: İşte yukarıda belirtilen gizlice geçirilen adrese non-static metot içerisinde this referansı ile erişilebilir  
17581795``` java 
17591796/* ----------------------------------------------------------------------------------------------------------------------
17601797 Tekrar: İşte yukarıda belirtilen gizlice geçirilen adrese non-static metot içerisinde this referansı ile 
@@ -1785,6 +1822,7 @@ class Sample {
17851822 }
17861823}
17871824``` 
1825+ ### Tekrar: this referansını okunabilirliği bozmamak kaydıyla non-static metot çağrılarında kullanılmalıdır.  
17881826``` java 
17891827/* ----------------------------------------------------------------------------------------------------------------------
17901828 Tekrar: this referansını okunabilirliği bozmamak kaydıyla non-static metot çağrılarında kullanılmalıdır. Bu durumda 
@@ -1821,6 +1859,7 @@ class Sample {
18211859 }
18221860}
18231861``` 
1862+ ### Tekrar: Aşağıdaki durumda this referansı kullanımı zorunludur  
18241863``` java 
18251864/* ----------------------------------------------------------------------------------------------------------------------
18261865 Tekrar: Aşağıdaki durumda this referansı kullanımı zorunludur 
@@ -1848,6 +1887,7 @@ class Point {
18481887 }
18491888}
18501889``` 
1890+ ### Aşağıdaki örnekte foo metodunun içerisinde this referansı B sınıfı türünden olduğundan error oluşur  
18511891``` java 
18521892/* ----------------------------------------------------------------------------------------------------------------------
18531893 Aşağıdaki örnekte foo metodunun içerisinde this referansı B sınıfı türünden olduğundan error oluşur 
@@ -1877,6 +1917,7 @@ class A {
18771917 }
18781918}
18791919``` 
1920+ ### Yukarıdaki durumdan dolayı aşağıdaki çağırmada exception oluşur (StackOverflowException)  
18801921``` java 
18811922/* ----------------------------------------------------------------------------------------------------------------------
18821923 Yukarıdaki durumdan dolayı aşağıdaki çağırmada exception oluşur (StackOverflowException) 
@@ -1909,6 +1950,7 @@ class A {
19091950 }
19101951}
19111952``` 
1953+ ### this expression'ın genel biçimi  
19121954``` java 
19131955/* ----------------------------------------------------------------------------------------------------------------------
19141956 this expression'ın genel biçimi 
@@ -1948,6 +1990,7 @@ class A {
19481990 }
19491991}
19501992``` 
1993+ ### Aşağıdaki örnekte makeText metoduna foo içerisinde ilgili B nesnesinin yaratılmasında kullanılan A nesnesinin referansının geçirilmesi gerektiğinden this expression kullanılmalıdır  
19511994``` java 
19521995/* ----------------------------------------------------------------------------------------------------------------------
19531996 Aşağıdaki örnekte makeText metoduna foo içerisinde ilgili B nesnesinin yaratılmasında kullanılan A nesnesinin 
@@ -1979,6 +2022,7 @@ class A {
19792022 }
19802023}
19812024``` 
2025+ ### Aşağıdaki örnekte bellek sızıntısı (memory leak) oluşur.  
19822026``` java 
19832027/* ----------------------------------------------------------------------------------------------------------------------
19842028 Aşağıdaki örnekte bellek sızıntısı (memory leak) oluşur. İleride böyle bir senaryoda bellek sızıntısı durumunun 
0 commit comments