Skip to content

Commit 44d8df0

Browse files
Update java015.md
1 parent f8b4c21 commit 44d8df0

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

JavaLesson015/java015.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
### for-each döngü deyiminin genel biçimi:
12
```java
23
/*----------------------------------------------------------------------------------------------------------------------
34
22.08.2020
@@ -16,6 +17,9 @@
1617
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
1718
dizinin baştan sona tamamı dolaşılsa bile örneğin index gerekiyor olabilir" anlayabilir.
1819
----------------------------------------------------------------------------------------------------------------------*/
20+
```
21+
### for-each döngü deyiminin temsili karşılığı
22+
```java
1923
/*----------------------------------------------------------------------------------------------------------------------
2024
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
2125
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 {
4751
}
4852
}
4953
```
54+
### for-each döngü deyiminde döngü değişkenine atama işlemi dorğudan yapılır.
5055
```java
5156
/*----------------------------------------------------------------------------------------------------------------------
5257
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 {
6671
}
6772
}
6873
```
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
6975
```java
7076
/*----------------------------------------------------------------------------------------------------------------------
7177
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 {
8288
}
8389
}
8490
```
91+
### for-each döngü deyiminde döngü değişkenini alanı döngü boyunca görülebilirdir
8592
```java
8693
/*----------------------------------------------------------------------------------------------------------------------
8794
for-each döngü deyiminde döngü değişkenini alanı döngü boyunca görülebilirdir
@@ -100,6 +107,7 @@ class App {
100107
}
101108
}
102109
```
110+
### for-each döngü deyiminde : den sonraki kısım bir kez yapılır
103111
```java
104112
/*----------------------------------------------------------------------------------------------------------------------
105113
for-each döngü deyiminde : den sonraki kısım bir kez yapılır
@@ -125,6 +133,7 @@ class Sample {
125133
}
126134
}
127135
```
136+
### for-each döngü deyiminde döngü değişkenine atama yapılabilir. Bu çok işe yarar bir işlem değildir.
128137
```java
129138
/*----------------------------------------------------------------------------------------------------------------------
130139
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 {
147156
}
148157
}
149158
```
159+
### String sınıfı for-each döngü deyimi ile kullanılamamaktadır
150160
```java
151161
/*----------------------------------------------------------------------------------------------------------------------
152162
String sınıfı for-each döngü deyimi ile kullanılamamaktadır
@@ -163,6 +173,7 @@ class App {
163173
}
164174
}
165175
```
176+
### Yukarıdaki işlem toCharArray metodu ile yapılabilir
166177
```java
167178
/*----------------------------------------------------------------------------------------------------------------------
168179
Yukarıdaki işlem toCharArray metodu ile yapılabilir
@@ -179,6 +190,7 @@ class App {
179190
}
180191
}
181192
```
193+
### for-each döngü deyimi ile dizi dizilerinin dolaşılması
182194
```java
183195
/*----------------------------------------------------------------------------------------------------------------------
184196
for-each döngü deyimi ile dizi dizilerinin dolaşılması
@@ -199,6 +211,7 @@ class App {
199211
}
200212
}
201213
```
214+
### for-each döngü deyimi kullanımı kolaylaştırdığı her yerde kullanılmalıdır.
202215
```java
203216
/*----------------------------------------------------------------------------------------------------------------------
204217
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 {
225238
}
226239
}
227240
```
241+
### ArrayUtil sınıfı (updated)
228242
```java
229243
/*----------------------------------------------------------------------------------------------------------------------
230244
ArrayUtil sınıfı
@@ -599,6 +613,7 @@ public class ArrayUtil {
599613
}
600614
}
601615
```
616+
# Sınıfın elemanlarının erişim belirleyicileri: (Java Modifiers)
602617
```java
603618
/*----------------------------------------------------------------------------------------------------------------------
604619
Sınıfın elemanlarının erişim belirleyicileri:
@@ -620,6 +635,7 @@ public class ArrayUtil {
620635
Sınıfın private ve public bölümlerinin anlamları aynı pakette veya farklı pakette değişmemektedir
621636
----------------------------------------------------------------------------------------------------------------------*/
622637
```
638+
### Sınıfın public bölüme sınıf dışından erişilebilir
623639
```java
624640
/*----------------------------------------------------------------------------------------------------------------------
625641
Sınıfın public bölüme sınıf dışından erişilebilir
@@ -676,6 +692,7 @@ public class B {
676692
}
677693
}
678694
```
695+
### Sınıfın private bölüme sınıf dışından erişilemez
679696
```java
680697
/*----------------------------------------------------------------------------------------------------------------------
681698
Sınıfın private bölüme sınıf dışından erişilemez
@@ -732,6 +749,7 @@ public class B {
732749
}
733750
}
734751
```
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)
735753
```java
736754
/*----------------------------------------------------------------------------------------------------------------------
737755
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 {
756774
}
757775
}
758776
```
777+
### Sınıfın no-modifier bölümü farklı paketteki diğer sınıflar için private anlamındadır
759778
```java
760779
/*----------------------------------------------------------------------------------------------------------------------
761780
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 {
786805
}
787806
}
788807
```
808+
### Sınıfın protected bölümü aynı paketteki diğer sınıflar için public anlamındadır (friendly, internal)
789809
```java
790810
/*----------------------------------------------------------------------------------------------------------------------
791811
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 {
819839
}
820840
}
821841
```
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
822843
```java
823844
/*----------------------------------------------------------------------------------------------------------------------
824845
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 {
850871
}
851872
}
852873
```
874+
### Erişim Belirleyicileri erişim tablosu (modifiers access table)
853875
```java
854876
/*----------------------------------------------------------------------------------------------------------------------
855877
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 {
859881
private T F F F
860882
----------------------------------------------------------------------------------------------------------------------*/
861883
```
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.
862885
```java
863886
/*----------------------------------------------------------------------------------------------------------------------
864887
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 {
872895
(client), sınıfı yazan kişiye ise hizmet veren (server) denir.
873896
----------------------------------------------------------------------------------------------------------------------*/
874897
```
898+
### Programlamada bazı önemli isimlendirme teknikleri
875899
```java
876900
/*----------------------------------------------------------------------------------------------------------------------
877901
Anahtar Notlar: Programlamada isimlendirme için bazı teknikler kullanılmaktadır. Bu teknikler dışında da isimlendirme
@@ -895,6 +919,7 @@ public class B {
895919
org.csystem.util, java.lang, java.io, java.util
896920
----------------------------------------------------------------------------------------------------------------------*/
897921
```
922+
### Programlama da private elemanlara yönelik bazı isimlendirme teknikleri
898923
```java
899924
/*----------------------------------------------------------------------------------------------------------------------
900925
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 {
904929
zamanda static "ms_" önekini kullanacağız.
905930
----------------------------------------------------------------------------------------------------------------------*/
906931
```
932+
### Bir sınıfın veri elemanlarına yönelik set metotları (setters) ve get metotlarının(getters) yazılması
907933
```java
908934
/*----------------------------------------------------------------------------------------------------------------------
909935
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 {
919945
isimlendirilen metotları ararlar ve çağırırlar.
920946
----------------------------------------------------------------------------------------------------------------------*/
921947
```
948+
### get ve set metotları için örnek şablon
922949
```java
923950
/*----------------------------------------------------------------------------------------------------------------------
924951
Aşağıdaki Date sınıfında veriler gizlenmiş ve get, set metotları yazılmıştır
@@ -985,6 +1012,7 @@ class Date {
9851012
}
9861013
}
9871014
```
1015+
### boolean türden elemanlar için getter biçimi farklıdır
9881016
```java
9891017
/*----------------------------------------------------------------------------------------------------------------------
9901018
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 {
10381066
//...
10391067
}
10401068
```
1069+
## Bir veri elamanı ne zaman gizlenmelidir!!!
10411070
```java
10421071
/*----------------------------------------------------------------------------------------------------------------------
10431072
Aşağıdaki durumlardan en az biri varsa veri elemanı gizlenmelidir:
@@ -1061,6 +1090,7 @@ class Device {
10611090
Bu durumlar dışında (%3 ile %5 arası rastlanır) sınıfın veri elemanı puıblic yapılabilir
10621091
----------------------------------------------------------------------------------------------------------------------*/
10631092
```
1093+
### veri elemanlarının gizlenmesi ve client kodun bu değişiklikten etkilenmemesi
10641094
```java
10651095
/*----------------------------------------------------------------------------------------------------------------------
10661096
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 {
11261156
}
11271157
}
11281158
```
1159+
### Circle sınıfı ve test kodu
11291160
```java
11301161
/*----------------------------------------------------------------------------------------------------------------------
11311162
23.08.2020
@@ -1198,6 +1229,7 @@ class App {
11981229
}
11991230
}
12001231
```
1232+
### Circle sınıfı
12011233
```java
12021234
/*----------------------------------------------------------------------------------------------------------------------
12031235
Circle sınıfı
@@ -1273,6 +1305,7 @@ public class Circle {
12731305
}
12741306
}
12751307
```
1308+
### Circle sınıfı ve test kodu
12761309
```java
12771310
/*----------------------------------------------------------------------------------------------------------------------
12781311
Circle sınıfı ve test kodu
@@ -1299,6 +1332,7 @@ class App {
12991332
}
13001333
}
13011334
```
1335+
### Circle sınıfı
13021336
```java
13031337
/*----------------------------------------------------------------------------------------------------------------------
13041338
Circle sınıfı
@@ -1355,6 +1389,7 @@ public class Circle {
13551389
}
13561390
}
13571391
```
1392+
### Complex sınıfı
13581393
```java
13591394
/*----------------------------------------------------------------------------------------------------------------------
13601395
Complex sınıfı
@@ -1460,6 +1495,7 @@ public class Complex {
14601495
}
14611496
}
14621497
```
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
14631499
```java
14641500
/*----------------------------------------------------------------------------------------------------------------------
14651501
Aşağıdaki örnekte dizinin elemanlarının değiştirilmesi ebgellenmemiştir
@@ -1494,6 +1530,7 @@ class Sample {
14941530
}
14951531
}
14961532
```
1533+
### Yukarıdaki problem aşağıdaki gibi çözülebilir
14971534
```java
14981535
/*----------------------------------------------------------------------------------------------------------------------
14991536
Yukarıdaki problem aşağıdaki gibi çözülebilir
@@ -1535,6 +1572,7 @@ class Sample {
15351572
}
15361573
}
15371574
```
1575+
### Tüm sınıfları static olan sınıflarda constructor durumu
15381576
```java
15391577
/*----------------------------------------------------------------------------------------------------------------------
15401578
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 {
15541592
}
15551593
}
15561594
```
1595+
### ArrayUtil sınıfı (güncellendi)
15571596
```java
15581597
/*----------------------------------------------------------------------------------------------------------------------
15591598
ArrayUtil sınıfı
@@ -1932,6 +1971,7 @@ public class ArrayUtil {
19321971
}
19331972
}
19341973
```
1974+
### NumberUtil sınıfı (güncellendi)
19351975
```java
19361976
/*----------------------------------------------------------------------------------------------------------------------
19371977
NumberUtil sınıfı
@@ -2203,6 +2243,7 @@ public class NumberUtil {
22032243
}
22042244
}
22052245
```
2246+
### StringUtil sınıfı (güncellendi)
22062247
```java
22072248
/*----------------------------------------------------------------------------------------------------------------------
22082249
StringUtil sınıfı
@@ -2447,19 +2488,22 @@ public class StringUtil {
24472488
}
24482489
}
24492490
```
2491+
### null referans ve anlamı (detayları ileride ele alınacak)
24502492
```java
24512493
/*----------------------------------------------------------------------------------------------------------------------
24522494
Anahtar Notlar: Programlamada o bölge için hiç bir yer ayrılmayan bir adres numarası vardır. Bu adres Java' da null isimli
24532495
bir anahtar sözcük ile temsil edilir. Buna null adres/referans de denir. Bir referansın default değer null değeridir.
24542496
null referans detayları ileride ele alınacaktır.
24552497
----------------------------------------------------------------------------------------------------------------------*/
24562498
```
2499+
### Tasarım örüntüleri (Design Patterns): Singleton kalıbı.
24572500
```java
24582501
/*----------------------------------------------------------------------------------------------------------------------
24592502
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
24602503
ve her isteyen aynı nesneyi kullanabilsin. Singleton kalıbının bir çok implementasyonu yapılabilir
24612504
----------------------------------------------------------------------------------------------------------------------*/
24622505
```
2506+
### Singleton kalıbının bir implementasyonu (lazy implementation)
24632507
```java
24642508
/*----------------------------------------------------------------------------------------------------------------------
24652509
Singleton kalıbının bir implementasyonu (lazy implementation)
@@ -2507,6 +2551,7 @@ class Singleton {
25072551
}
25082552
}
25092553
```
2554+
### Singleton kalıbının bir implementasyonu (lazy implementation) (2)
25102555
```java
25112556
/*----------------------------------------------------------------------------------------------------------------------
25122557
Singleton kalıbının bir implementasyonu (lazy implementation)
@@ -2560,6 +2605,7 @@ class Singleton {
25602605
}
25612606
}
25622607
```
2608+
## final değişkenler
25632609
```java
25642610
/*----------------------------------------------------------------------------------------------------------------------
25652611
final değişkenler:
@@ -2572,6 +2618,7 @@ class Singleton {
25722618
geçerliyse kesinklikle yapılmalıdır.
25732619
----------------------------------------------------------------------------------------------------------------------*/
25742620
```
2621+
### final yerel değişkenlere faaliyet alanı boyunca bir kez atama yapılabilir.
25752622
```java
25762623
/*----------------------------------------------------------------------------------------------------------------------
25772624
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 {
25912638
}
25922639
}
25932640
```
2641+
### Bir metodun parametre değişkeni final olarak bildirilebilir.
25942642
```java
25952643
/*----------------------------------------------------------------------------------------------------------------------
25962644
Bir metodun parametre değişkeni final olarak bildirilebilir. Bu durumda metodun final olan parametre değişkenine

0 commit comments

Comments
 (0)