Javaのstaticメソッドとインスタンス変数のスコープについて不明点があります。
以下のコードにおいて、
Java
1public class Test { 2 private String id; 3 private boolean isCorrect; 4 5 public String getId() { 6 return id; 7 } 8 9 public void setId(String id) { 10 this.id = id; 11 } 12 13 public boolean isCorrect() { 14 return isCorrect; 15 } 16 17 public void setCorrect(boolean isCorrect) { 18 this.isCorrect = isCorrect; 19 } 20 21 public static Test copy(Test oldS) { 22 Test newT = new Test(); 23 newT.setId(oldS.getId()); 24 newT.setCorrect(oldS.isCorrect); 25 return newT; 26 } 27 28 @Override 29 public String toString() { 30 return "Test [id=" + id + ", isCorrect=" + isCorrect + "]"; 31 } 32 33} 34
copyメソッド(staticメソッド)内で、
isCorrectのインスタンス変数にアクセスしていますが、
エラーにならないのは何故でしょうか。
Java
1newT.setCorrect(oldS.isCorrect); 2
以下のように書かなくても問題ないのでしょうか。
Java
1newT.setCorrect(oldS.isCorrect()); 2
ご存知の方いらっしゃいましたら、ご教示ください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/10 08:57
2017/07/10 09:33