Javaクラスとオブジェクトの関係を理解しようとしていますが、一つの問題に直面しています。論理が理解できない
ここで私は1つの単純なJava Beanクラスを持っている:
public class Student {
int id;
String name;
String marks;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMarks() {
return marks;
}
public void setMarks(String marks) {
this.marks = marks;
}
}
そして、もう一つのエディタクラス:
public class EditStudent {
public static void editStd(Student st){
st.setId(10);
st.setName("editAbleName");
st.setMarks("133");
// return st;
}
私は私のプログラムのクラスで学生のオブジェクトに対して、このロジックを書いています:
public class TestProgram {
public static void main(String args[]){
System.out.println("main");
Student std = new Student();
std.setId(1);
std.setName("zeeshan");
std.setMarks("44");
EditStudent.editStd(std);
System.out.println("id " +std.getId());
System.out.println("name " +std.getName());
System.out.println("marks " +std.getMarks());
}
}
出力:
main
id 10
name editAbleName
marks 133
テストプログラムクラスで設定したオブジェクトの出力値を取得しますが、EditStudent
クラスで設定した出力値を取得するとします。 私のstd
オブジェクトとeditStudent
クラスの間には関係がないと思われるのはなぜですか? この論理とプロセスの背後にある論理が私に説明してください!
の利益のために必要無しEditStudentそのによって参照されるオブジェクトの値を変更するためパラメータ。 –
'std'は**ではない**オブジェクトです。これはオブジェクトへの参照です。 「Javaは「参照渡し」または「渡し渡し」ですか?」(http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-値) –
少し役立つが、より明確なexplinationにする必要があります –