-2

メソッドが呼び出さp.name = "EJava";れた後に変更されるべきではありませんか? anotherMethod(p);このコードが返す理由を誰でも説明できますか:

anotherMethod
EJava
someMethod
someMethod

それ以外の :

anotherMethod
anotherMethod
someMethod
someMethod

クラスの人

class Person {
   public String name;
   public int height;
}    

テスター

class EJavaGuruPassObjects1 {
    public static void main(String args[]) {
        Person p = new Person();
        p.name = "EJava";
        anotherMethod(p);
        System.out.println(p.name);
        someMethod(p);
        System.out.println(p.name);
    }

    static void someMethod(Person p) {
        p.name = "someMethod";
        System.out.println(p.name);
    }

    static void anotherMethod(Person p) {
        p = new Person();
        p.name = "anotherMethod";
        System.out.println(p.name);
    }
}

メソッドが呼び出さp.name = "EJava";れた後に変更されるべきではありませんか?anotherMethod(p);

4

4 に答える 4