回答編集履歴

2

後半、大間違いでした

2020/07/26 19:03

投稿

amiya
amiya

スコア1218

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
- private double x1, y1, x2, y2;
53
+ public static void main(String[] args) {
34
54
 
35
55
 
36
56
 
37
- public static void main(String[] args) {
57
+ double x1, y1, x2, y2;
38
58
 
39
59
 
40
60
 
@@ -42,17 +62,17 @@
42
62
 
43
63
 
44
64
 
45
- this.x1 = in.inputDouble("端点1のx1の値を入力してください");
65
+ x1 = in.inputDouble("端点1のx1の値を入力してください");
46
66
 
47
- this.y1 = in.inputDouble("端点2のx2の値を入力してください");
67
+ y1 = in.inputDouble("端点2のx2の値を入力してください");
48
68
 
49
- this.x2 = in.inputDouble("端点1のy1の値を入力してください");
69
+ x2 = in.inputDouble("端点1のy1の値を入力してください");
50
70
 
51
- this.y2 = in.inputDouble("端点2のx2の値を入力してください");
71
+ y2 = in.inputDouble("端点2のx2の値を入力してください");
52
72
 
53
73
 
54
74
 
55
- LinerSegment beforeLine = new LinerSegment(this.x1, this.y1, this.x2, this.y2);
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

追加

2020/07/26 19:03

投稿

amiya
amiya

スコア1218

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
+ ```