静的メソッドを使用して非静的変数にアクセスすることはできませんが、私は次のコードに遭遇しました。静的メソッドは非静的インスタンス変数にアクセスできますか?
class Laptop {
String memory = "1GB";
}
class Workshop {
public static void main(String args[]) {
Laptop life = new Laptop();
repair(life);
System.out.println(life.memory);
}
public static void repair(Laptop laptop) {
laptop.memory = "2GB";
}
}
エラーなしでコンパイルされます。
だから非静的インスタンス変数であるクラスのノートパソコンで定義された文字列のメモリをアクセスする
public static void repair(Laptop laptop) {
laptop.memory = "2GB";
}
ではないでしょうか?
コードはエラーなしでコンパイルされるため、私はここで何かを理解していないと仮定しています。誰かが私が理解していないことを教えてもらえますか?
あなたがワークショップで非静的フィールドを持っていた場合、あなたは静的文脈からそれにアクセスすることができませんでした。しかし、あなたが作成した静的でないオブジェクトの静的でないフィールドに**静的なコンテキストの中で**アクセスすることは、まったく問題ありません。 – Fildor