-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathSolution.java
More file actions
99 lines (73 loc) · 2.88 KB
/
Solution.java
File metadata and controls
99 lines (73 loc) · 2.88 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package com.javarush.task.task13.task1306;
//Philip said to him, "Lord, show us the Father, and that will be enough for us." (John 14:8)
/*
Баг в initializeIdAndName
*/
public class Solution {
public static void main(String[] args) throws Exception {
System.out.println(Matrix.NEO);
System.out.println(Matrix.TRINITY);
}
static class Matrix {
public static DBObject NEO = new User().initializeIdAndName(1, "Neo");
public static DBObject TRINITY = new User().initializeIdAndName(2, "Trinity");
}
interface DBObject {
User initializeIdAndName(long id, String name);
}
static class User implements DBObject {
long id;
String name;
@Override
public String toString() {
return String.format("User has name %s, id = %d", name, id);
}
@Override
public User initializeIdAndName (long id, String name) {
this.id = id;
this.name = name;
return new User();
}
}
}
/*
Баг в initializeIdAndName
1. Подумать, что в программе неправильно.
2. Вынести реализацию метода initializeIdAndName в класс User.
3. initializeIdAndName в классе User должен возвращать тип User.
4. Поправить программу, чтобы компилировалась и работала.
Требования:
1. Интерфейс DBObject должен содержать только объявление метода initializeIdAndName без реализации.
2. Реализуй метод initializeIdAndName в классе User.
3. Метод initializeIdAndName в классе User должен иметь тип возвращаемого значения User.
4. Метод initializeIdAndName должен присваивать значения полям id и name в соответствии с переданными ему параметрами.
package com.javarush.task.task13.task1306;
/*
Баг в initializeIdAndName
*/
public class Solution {
public static void main(String[] args) throws Exception {
System.out.println(Matrix.NEO);
System.out.println(Matrix.TRINITY);
}
static class Matrix {
public static DBObject NEO = new User().initializeIdAndName(1, "Neo");
public static DBObject TRINITY = new User().initializeIdAndName(2, "Trinity");
}
interface DBObject {
DBObject initializeIdAndName(long id, String name) {
this.id = id;
this.name = name;
return this;
}
}
static class User implements DBObject {
long id;
String name;
@Override
public String toString() {
return String.format("User has name %s, id = %d", name, id);
}
}
}
*/