1
+ ### for-each döngü deyiminin genel biçimi:
1
2
``` java
2
3
/* ----------------------------------------------------------------------------------------------------------------------
3
4
22.08.2020
16
17
Yani kodu okuyan kişi bir örneğin bir dizi için klasik for döngüsü görürse, "for-each ile yazılmadığına göre
17
18
dizinin baştan sona tamamı dolaşılsa bile örneğin index gerekiyor olabilir" anlayabilir.
18
19
----------------------------------------------------------------------------------------------------------------------*/
20
+ ```
21
+ ### for-each döngü deyiminin temsili karşılığı
22
+ ``` java
19
23
/* ----------------------------------------------------------------------------------------------------------------------
20
24
for-each döngü deyiminin dizi ile kullanımında döngü değişkenine döngünün her adımında o anki elemanın değeri
21
25
atanır. Bu işlem dizinin başından sonuna kadar tekrarlanır. Aşağıdaki for-each deyiminin temsili karşılığı şu
@@ -47,6 +51,7 @@ class App {
47
51
}
48
52
}
49
53
```
54
+ ### for-each döngü deyiminde döngü değişkenine atama işlemi dorğudan yapılır.
50
55
``` java
51
56
/* ----------------------------------------------------------------------------------------------------------------------
52
57
for-each döngü deyiminde döngü değişkenine atama işlemi dorğudan yapılır. Aşağıdaki örnekte int türünden short
@@ -66,6 +71,7 @@ class App {
66
71
}
67
72
}
68
73
```
74
+ ### for-each döngü deyiminde döngü değişkenine atama işlemi dorğudan yapılır. Aşağıdaki örnekte error oluşmaz
69
75
``` java
70
76
/* ----------------------------------------------------------------------------------------------------------------------
71
77
for-each döngü deyiminde döngü değişkenine atama işlemi dorğudan yapılır. Aşağıdaki örnekte error oluşmaz
@@ -82,6 +88,7 @@ class App {
82
88
}
83
89
}
84
90
```
91
+ ### for-each döngü deyiminde döngü değişkenini alanı döngü boyunca görülebilirdir
85
92
``` java
86
93
/* ----------------------------------------------------------------------------------------------------------------------
87
94
for-each döngü deyiminde döngü değişkenini alanı döngü boyunca görülebilirdir
@@ -100,6 +107,7 @@ class App {
100
107
}
101
108
}
102
109
```
110
+ ### for-each döngü deyiminde : den sonraki kısım bir kez yapılır
103
111
``` java
104
112
/* ----------------------------------------------------------------------------------------------------------------------
105
113
for-each döngü deyiminde : den sonraki kısım bir kez yapılır
@@ -125,6 +133,7 @@ class Sample {
125
133
}
126
134
}
127
135
```
136
+ ### for-each döngü deyiminde döngü değişkenine atama yapılabilir. Bu çok işe yarar bir işlem değildir.
128
137
``` java
129
138
/* ----------------------------------------------------------------------------------------------------------------------
130
139
for-each döngü deyiminde döngü değişkenine atama yapılabilir. Bu çok işe yarar bir işlem değildir. Şüphesiz
@@ -147,6 +156,7 @@ class App {
147
156
}
148
157
}
149
158
```
159
+ ### String sınıfı for-each döngü deyimi ile kullanılamamaktadır
150
160
``` java
151
161
/* ----------------------------------------------------------------------------------------------------------------------
152
162
String sınıfı for-each döngü deyimi ile kullanılamamaktadır
@@ -163,6 +173,7 @@ class App {
163
173
}
164
174
}
165
175
```
176
+ ### Yukarıdaki işlem toCharArray metodu ile yapılabilir
166
177
``` java
167
178
/* ----------------------------------------------------------------------------------------------------------------------
168
179
Yukarıdaki işlem toCharArray metodu ile yapılabilir
@@ -179,6 +190,7 @@ class App {
179
190
}
180
191
}
181
192
```
193
+ ### for-each döngü deyimi ile dizi dizilerinin dolaşılması
182
194
``` java
183
195
/* ----------------------------------------------------------------------------------------------------------------------
184
196
for-each döngü deyimi ile dizi dizilerinin dolaşılması
@@ -199,6 +211,7 @@ class App {
199
211
}
200
212
}
201
213
```
214
+ ### for-each döngü deyimi kullanımı kolaylaştırdığı her yerde kullanılmalıdır.
202
215
``` java
203
216
/* ----------------------------------------------------------------------------------------------------------------------
204
217
for-each döngü deyimi kullanımı kolaylaştırdığı her yerde kullanılmalıdır. Ancak örneğin döngü içerisinde indeks
@@ -225,6 +238,7 @@ class App {
225
238
}
226
239
}
227
240
```
241
+ ### ArrayUtil sınıfı (updated)
228
242
``` java
229
243
/* ----------------------------------------------------------------------------------------------------------------------
230
244
ArrayUtil sınıfı
@@ -599,6 +613,7 @@ public class ArrayUtil {
599
613
}
600
614
}
601
615
```
616
+ # Sınıfın elemanlarının erişim belirleyicileri: (Java Modifiers)
602
617
``` java
603
618
/* ----------------------------------------------------------------------------------------------------------------------
604
619
Sınıfın elemanlarının erişim belirleyicileri:
@@ -620,6 +635,7 @@ public class ArrayUtil {
620
635
Sınıfın private ve public bölümlerinin anlamları aynı pakette veya farklı pakette değişmemektedir
621
636
----------------------------------------------------------------------------------------------------------------------*/
622
637
```
638
+ ### Sınıfın public bölüme sınıf dışından erişilebilir
623
639
``` java
624
640
/* ----------------------------------------------------------------------------------------------------------------------
625
641
Sınıfın public bölüme sınıf dışından erişilebilir
@@ -676,6 +692,7 @@ public class B {
676
692
}
677
693
}
678
694
```
695
+ ### Sınıfın private bölüme sınıf dışından erişilemez
679
696
``` java
680
697
/* ----------------------------------------------------------------------------------------------------------------------
681
698
Sınıfın private bölüme sınıf dışından erişilemez
@@ -732,6 +749,7 @@ public class B {
732
749
}
733
750
}
734
751
```
752
+ ### Sınıfın no-modifier bölümü aynı paketteki diğer sınıflar için public anlamındadır (friendly, internal)
735
753
``` java
736
754
/* ----------------------------------------------------------------------------------------------------------------------
737
755
Sınıfın no-modifier bölümü aynı paketteki diğer sınıflar için public anlamındadır (friendly, internal)
@@ -756,6 +774,7 @@ class B {
756
774
}
757
775
}
758
776
```
777
+ ### Sınıfın no-modifier bölümü farklı paketteki diğer sınıflar için private anlamındadır
759
778
``` java
760
779
/* ----------------------------------------------------------------------------------------------------------------------
761
780
Sınıfın no-modifier bölümü farklı paketteki diğer sınıflar için private anlamındadır
@@ -786,6 +805,7 @@ public class B {
786
805
}
787
806
}
788
807
```
808
+ ### Sınıfın protected bölümü aynı paketteki diğer sınıflar için public anlamındadır (friendly, internal)
789
809
``` java
790
810
/* ----------------------------------------------------------------------------------------------------------------------
791
811
Sınıfın protected bölümü aynı paketteki diğer sınıflar için public anlamındadır (friendly, internal)
@@ -819,6 +839,7 @@ class B {
819
839
}
820
840
}
821
841
```
842
+ ### Sınıfın protected bölümü farklı paketteki diğer sınıflar için türetme (inheritance) söz konusu değilse private anlamdadır. Türetme ve protected bölümün anlamı ileride ele alınacaktır
822
843
``` java
823
844
/* ----------------------------------------------------------------------------------------------------------------------
824
845
Sınıfın protected bölümü farklı paketteki diğer sınıflar için türetme (inheritance) söz konusu değilse private
@@ -850,6 +871,7 @@ public class B {
850
871
}
851
872
}
852
873
```
874
+ ### Erişim Belirleyicileri erişim tablosu (modifiers access table)
853
875
``` java
854
876
/* ----------------------------------------------------------------------------------------------------------------------
855
877
Erişim Belirleyici Kendisi Aynı Paketteki sınıflar Farklı paketteki sınıflar Türemiş sınıflar
@@ -859,6 +881,7 @@ public class B {
859
881
private T F F F
860
882
----------------------------------------------------------------------------------------------------------------------*/
861
883
```
884
+ ### Sınıfın özellikle veri elemanlarının gizlenmesine (yani diğer sınıflardan erişilememesine) nesne yönelimli programlama tekniğinde kapsülleme (encapsulation) denir.
862
885
``` java
863
886
/* ----------------------------------------------------------------------------------------------------------------------
864
887
Sınıfın özellikle veri elemanlarının gizlenmesine (yani diğer sınıflardan erişilememesine) nesne yönelimli
@@ -872,6 +895,7 @@ public class B {
872
895
(client), sınıfı yazan kişiye ise hizmet veren (server) denir.
873
896
----------------------------------------------------------------------------------------------------------------------*/
874
897
```
898
+ ### Programlamada bazı önemli isimlendirme teknikleri
875
899
``` java
876
900
/* ----------------------------------------------------------------------------------------------------------------------
877
901
Anahtar Notlar: Programlamada isimlendirme için bazı teknikler kullanılmaktadır. Bu teknikler dışında da isimlendirme
@@ -895,6 +919,7 @@ public class B {
895
919
org.csystem.util, java.lang, java.io, java.util
896
920
----------------------------------------------------------------------------------------------------------------------*/
897
921
```
922
+ ### Programlama da private elemanlara yönelik bazı isimlendirme teknikleri
898
923
``` java
899
924
/* ----------------------------------------------------------------------------------------------------------------------
900
925
Nesne yönelimli programlamada sınıfın özellike gizlene (genel olarak private) veri elemanlarının isimlendirilmesine
@@ -904,6 +929,7 @@ public class B {
904
929
zamanda static "ms_" önekini kullanacağız.
905
930
----------------------------------------------------------------------------------------------------------------------*/
906
931
```
932
+ ### Bir sınıfın veri elemanlarına yönelik set metotları (setters) ve get metotlarının(getters) yazılması
907
933
``` java
908
934
/* ----------------------------------------------------------------------------------------------------------------------
909
935
Bir veri elemanı gizlendiğinde sınıfın müşteri kodlarının bu elemana değer ataması veya bu elemanın değerini
@@ -919,6 +945,7 @@ public class B {
919
945
isimlendirilen metotları ararlar ve çağırırlar.
920
946
----------------------------------------------------------------------------------------------------------------------*/
921
947
```
948
+ ### get ve set metotları için örnek şablon
922
949
``` java
923
950
/* ----------------------------------------------------------------------------------------------------------------------
924
951
Aşağıdaki Date sınıfında veriler gizlenmiş ve get, set metotları yazılmıştır
@@ -985,6 +1012,7 @@ class Date {
985
1012
}
986
1013
}
987
1014
```
1015
+ ### boolean türden elemanlar için getter biçimi farklıdır
988
1016
``` java
989
1017
/* ----------------------------------------------------------------------------------------------------------------------
990
1018
Aşağıdaki Device sınıfında m_isActive veri elemanı için get metodunun ismi "is" ile başlatılmıştır
@@ -1038,6 +1066,7 @@ class Device {
1038
1066
// ...
1039
1067
}
1040
1068
```
1069
+ ## Bir veri elamanı ne zaman gizlenmelidir!!!
1041
1070
``` java
1042
1071
/* ----------------------------------------------------------------------------------------------------------------------
1043
1072
Aşağıdaki durumlardan en az biri varsa veri elemanı gizlenmelidir:
@@ -1061,6 +1090,7 @@ class Device {
1061
1090
Bu durumlar dışında (%3 ile %5 arası rastlanır) sınıfın veri elemanı puıblic yapılabilir
1062
1091
----------------------------------------------------------------------------------------------------------------------*/
1063
1092
```
1093
+ ### veri elemanlarının gizlenmesi ve client kodun bu değişiklikten etkilenmemesi
1064
1094
``` java
1065
1095
/* ----------------------------------------------------------------------------------------------------------------------
1066
1096
Aşağdaki örnekte Date sınıfının içsel algoritması değişmesine rağmen müşteri kodları bundan etkilenmemiştir
@@ -1126,6 +1156,7 @@ class Date {
1126
1156
}
1127
1157
}
1128
1158
```
1159
+ ### Circle sınıfı ve test kodu
1129
1160
``` java
1130
1161
/* ----------------------------------------------------------------------------------------------------------------------
1131
1162
23.08.2020
@@ -1198,6 +1229,7 @@ class App {
1198
1229
}
1199
1230
}
1200
1231
```
1232
+ ### Circle sınıfı
1201
1233
``` java
1202
1234
/* ----------------------------------------------------------------------------------------------------------------------
1203
1235
Circle sınıfı
@@ -1273,6 +1305,7 @@ public class Circle {
1273
1305
}
1274
1306
}
1275
1307
```
1308
+ ### Circle sınıfı ve test kodu
1276
1309
``` java
1277
1310
/* ----------------------------------------------------------------------------------------------------------------------
1278
1311
Circle sınıfı ve test kodu
@@ -1299,6 +1332,7 @@ class App {
1299
1332
}
1300
1333
}
1301
1334
```
1335
+ ### Circle sınıfı
1302
1336
``` java
1303
1337
/* ----------------------------------------------------------------------------------------------------------------------
1304
1338
Circle sınıfı
@@ -1355,6 +1389,7 @@ public class Circle {
1355
1389
}
1356
1390
}
1357
1391
```
1392
+ ### Complex sınıfı
1358
1393
``` java
1359
1394
/* ----------------------------------------------------------------------------------------------------------------------
1360
1395
Complex sınıfı
@@ -1460,6 +1495,7 @@ public class Complex {
1460
1495
}
1461
1496
}
1462
1497
```
1498
+ ### Getter ile referans olan veri elemanının verilmemsi ve bu durumun veri gizliliğine sakıncası. Aşağıdaki örnekte dizinin elemanlarının değiştirilmesi engellenmemiştir
1463
1499
``` java
1464
1500
/* ----------------------------------------------------------------------------------------------------------------------
1465
1501
Aşağıdaki örnekte dizinin elemanlarının değiştirilmesi ebgellenmemiştir
@@ -1494,6 +1530,7 @@ class Sample {
1494
1530
}
1495
1531
}
1496
1532
```
1533
+ ### Yukarıdaki problem aşağıdaki gibi çözülebilir
1497
1534
``` java
1498
1535
/* ----------------------------------------------------------------------------------------------------------------------
1499
1536
Yukarıdaki problem aşağıdaki gibi çözülebilir
@@ -1535,6 +1572,7 @@ class Sample {
1535
1572
}
1536
1573
}
1537
1574
```
1575
+ ### Tüm sınıfları static olan sınıflarda constructor durumu
1538
1576
``` java
1539
1577
/* ----------------------------------------------------------------------------------------------------------------------
1540
1578
Tüm elemanları static olarak bildirilmiş sınıflar türünden nesnelerin anlamı olmayacağından public ctor bu tarz
@@ -1554,6 +1592,7 @@ class App {
1554
1592
}
1555
1593
}
1556
1594
```
1595
+ ### ArrayUtil sınıfı (güncellendi)
1557
1596
``` java
1558
1597
/* ----------------------------------------------------------------------------------------------------------------------
1559
1598
ArrayUtil sınıfı
@@ -1932,6 +1971,7 @@ public class ArrayUtil {
1932
1971
}
1933
1972
}
1934
1973
```
1974
+ ### NumberUtil sınıfı (güncellendi)
1935
1975
``` java
1936
1976
/* ----------------------------------------------------------------------------------------------------------------------
1937
1977
NumberUtil sınıfı
@@ -2203,6 +2243,7 @@ public class NumberUtil {
2203
2243
}
2204
2244
}
2205
2245
```
2246
+ ### StringUtil sınıfı (güncellendi)
2206
2247
``` java
2207
2248
/* ----------------------------------------------------------------------------------------------------------------------
2208
2249
StringUtil sınıfı
@@ -2447,19 +2488,22 @@ public class StringUtil {
2447
2488
}
2448
2489
}
2449
2490
```
2491
+ ### null referans ve anlamı (detayları ileride ele alınacak)
2450
2492
``` java
2451
2493
/* ----------------------------------------------------------------------------------------------------------------------
2452
2494
Anahtar Notlar: Programlamada o bölge için hiç bir yer ayrılmayan bir adres numarası vardır. Bu adres Java' da null isimli
2453
2495
bir anahtar sözcük ile temsil edilir. Buna null adres/referans de denir. Bir referansın default değer null değeridir.
2454
2496
null referans detayları ileride ele alınacaktır.
2455
2497
----------------------------------------------------------------------------------------------------------------------*/
2456
2498
```
2499
+ ### Tasarım örüntüleri (Design Patterns): Singleton kalıbı.
2457
2500
``` java
2458
2501
/* ----------------------------------------------------------------------------------------------------------------------
2459
2502
Singleton kalıbı: Öyle bir sınıf olsun ki bu sınıf türünden program boyunca yalnızca bir tane nesne yaratılabilsin
2460
2503
ve her isteyen aynı nesneyi kullanabilsin. Singleton kalıbının bir çok implementasyonu yapılabilir
2461
2504
----------------------------------------------------------------------------------------------------------------------*/
2462
2505
```
2506
+ ### Singleton kalıbının bir implementasyonu (lazy implementation)
2463
2507
``` java
2464
2508
/* ----------------------------------------------------------------------------------------------------------------------
2465
2509
Singleton kalıbının bir implementasyonu (lazy implementation)
@@ -2507,6 +2551,7 @@ class Singleton {
2507
2551
}
2508
2552
}
2509
2553
```
2554
+ ### Singleton kalıbının bir implementasyonu (lazy implementation) (2)
2510
2555
``` java
2511
2556
/* ----------------------------------------------------------------------------------------------------------------------
2512
2557
Singleton kalıbının bir implementasyonu (lazy implementation)
@@ -2560,6 +2605,7 @@ class Singleton {
2560
2605
}
2561
2606
}
2562
2607
```
2608
+ ## final değişkenler
2563
2609
``` java
2564
2610
/* ----------------------------------------------------------------------------------------------------------------------
2565
2611
final değişkenler:
@@ -2572,6 +2618,7 @@ class Singleton {
2572
2618
geçerliyse kesinklikle yapılmalıdır.
2573
2619
----------------------------------------------------------------------------------------------------------------------*/
2574
2620
```
2621
+ ### final yerel değişkenlere faaliyet alanı boyunca bir kez atama yapılabilir.
2575
2622
``` java
2576
2623
/* ----------------------------------------------------------------------------------------------------------------------
2577
2624
final yerel değişkenlere faaliyet alanı boyunca bir kez atama yapılabilir. Genel olarak ilkdeğer verilse de
@@ -2591,6 +2638,7 @@ class App {
2591
2638
}
2592
2639
}
2593
2640
```
2641
+ ### Bir metodun parametre değişkeni final olarak bildirilebilir.
2594
2642
``` java
2595
2643
/* ----------------------------------------------------------------------------------------------------------------------
2596
2644
Bir metodun parametre değişkeni final olarak bildirilebilir. Bu durumda metodun final olan parametre değişkenine
0 commit comments