回答編集履歴
2
後半、大間違いでした
test
CHANGED
@@ -20,9 +20,27 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
アクセス制御をしたい場合、ローカル変数ではなく、フィールドにしてください。
|
23
|
+
~~アクセス制御をしたい場合、ローカル変数ではなく、フィールドにしてください。
|
24
24
|
|
25
|
-
(thisの有無は重複とは無関係です。重複していなくとも使えます)
|
25
|
+
(thisの有無は重複とは無関係です。重複していなくとも使えます)~~
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
mainメソッドはstaticなクラスメソッドなので、自分のインスタンスを持たず、
|
30
|
+
|
31
|
+
インスタンスフィールドにはアクセスできません。
|
32
|
+
|
33
|
+
その為、その中でthisを使うこともできません。
|
34
|
+
|
35
|
+
(自インスタンスが存在しないので、それを表すthisも使えない)
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
変数をローカル変数として、アクセス指定子とthisを外した状態にしてください。
|
40
|
+
|
41
|
+
privateと指定せずともローカル変数には外部からはアクセスできません。
|
42
|
+
|
43
|
+
また、ローカル変数へのアクセスにはthisは不要です
|
26
44
|
|
27
45
|
|
28
46
|
|
@@ -30,11 +48,13 @@
|
|
30
48
|
|
31
49
|
public class Main {
|
32
50
|
|
51
|
+
|
52
|
+
|
33
|
-
p
|
53
|
+
public static void main(String[] args) {
|
34
54
|
|
35
55
|
|
36
56
|
|
37
|
-
|
57
|
+
double x1, y1, x2, y2;
|
38
58
|
|
39
59
|
|
40
60
|
|
@@ -42,17 +62,17 @@
|
|
42
62
|
|
43
63
|
|
44
64
|
|
45
|
-
|
65
|
+
x1 = in.inputDouble("端点1のx1の値を入力してください");
|
46
66
|
|
47
|
-
|
67
|
+
y1 = in.inputDouble("端点2のx2の値を入力してください");
|
48
68
|
|
49
|
-
|
69
|
+
x2 = in.inputDouble("端点1のy1の値を入力してください");
|
50
70
|
|
51
|
-
|
71
|
+
y2 = in.inputDouble("端点2のx2の値を入力してください");
|
52
72
|
|
53
73
|
|
54
74
|
|
55
|
-
LinerSegment beforeLine = new LinerSegment(
|
75
|
+
LinerSegment beforeLine = new LinerSegment(x1, y1, x2, y2);
|
56
76
|
|
57
77
|
LineSegment afterLine = beforeLine.linearTransfer();
|
58
78
|
|
@@ -60,7 +80,7 @@
|
|
60
80
|
|
61
81
|
"\n => LineSegment after linearTransfer :" + afterLine);
|
62
82
|
|
63
|
-
|
83
|
+
}
|
64
84
|
|
65
85
|
}
|
66
86
|
|
1
追加
test
CHANGED
@@ -15,3 +15,53 @@
|
|
15
15
|
|
16
16
|
|
17
17
|
thisを外した場合、最も近い位置にあるローカル変数が対象になるので、エラーでなくなります。
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
アクセス制御をしたい場合、ローカル変数ではなく、フィールドにしてください。
|
24
|
+
|
25
|
+
(thisの有無は重複とは無関係です。重複していなくとも使えます)
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
```Java
|
30
|
+
|
31
|
+
public class Main {
|
32
|
+
|
33
|
+
private double x1, y1, x2, y2;
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
public static void main(String[] args) {
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
Input in = Input();
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
this.x1 = in.inputDouble("端点1のx1の値を入力してください");
|
46
|
+
|
47
|
+
this.y1 = in.inputDouble("端点2のx2の値を入力してください");
|
48
|
+
|
49
|
+
this.x2 = in.inputDouble("端点1のy1の値を入力してください");
|
50
|
+
|
51
|
+
this.y2 = in.inputDouble("端点2のx2の値を入力してください");
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
LinerSegment beforeLine = new LinerSegment(this.x1, this.y1, this.x2, this.y2);
|
56
|
+
|
57
|
+
LineSegment afterLine = beforeLine.linearTransfer();
|
58
|
+
|
59
|
+
System.out.println("Input LineSegment :" + beforeLine +
|
60
|
+
|
61
|
+
"\n => LineSegment after linearTransfer :" + afterLine);
|
62
|
+
|
63
|
+
}
|
64
|
+
|
65
|
+
}
|
66
|
+
|
67
|
+
```
|