Skip to content

Commit f908af7

Browse files
Update JavaEE007.md
1 parent 29ff296 commit f908af7

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

JavaAppLesson007/JavaEE007.md

+44
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
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

Comments
 (0)