-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
72 lines (60 loc) · 2.22 KB
/
Copy pathMain.java
File metadata and controls
72 lines (60 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Main.java
/*
Scoped Assignment ve Scoped Access Java'da gerçek özellikler değil.
// Ancak bu örnekte fluent setter ve blok yapısı kullanarak
// bu fikirlerin benzerleri simüle edilmiştir.
// Scoped Assignment:
// Atama ifadesi sonucu o değişkeni döndürür, böylece atama sonrası metod çağrısı yapılabilir.
// Scoped Access:
// Nesne üzerinde çoklu alan ve metot çağrıları bir blok içinde yapılabilir.
// Böylece her satırda nesne adını tekrar yazmak gerekmez.
*/
class MyObject {
int field1;
String field2;
// Scoped Assignment benzeri: atama yapar, kendini döner (fluent setter)
MyObject setField1(int value) {
this.field1 = value;
return this;
}
MyObject setField2(String value) {
this.field2 = value;
return this;
}
void verifyConfiguration() {
System.out.println("Verify config: field1 = " + field1 + ", field2 = " + field2);
}
void init() {
System.out.println("Initialization done.");
}
}
public class Main {
public static void main(String[] args) {
// Scoped Access simülasyonu: blok içinde nesneye ait alan ve metotlar kullanılıyor
MyObject myObject = new MyObject();
{
// Buradaki blok Scoped Access etkisi yaratıyor
myObject.setField1(10);
myObject.setField2("Scoped Access Example");
myObject.verifyConfiguration();
myObject.init();
}
System.out.println("---");
// Scoped Assignment simülasyonu: zincirleme metot çağrıları ile atama ve erişim
MyObject myObject2 = new MyObject()
.setField1(20) // Atama yapılır
.setField2("Scoped Assignment"); // Atama sonrası nesne döndüğü için zincir devam eder
myObject2.verifyConfiguration();
myObject2.init();
System.out.println("---");
// Scoped Assignment ve Scoped Access kombinasyonu simülasyonu
MyObject myObject3 = new MyObject();
{
myObject3
.setField1(30)
.setField2("Combined Scoped Example");
myObject3.verifyConfiguration();
myObject3.init();
}
}
}