Java 对象实例化中涉及的步骤。
我对Java有一个非常基本的疑问。我有以下课程: userViewtest.java:Java 对象实例化中涉及的步骤。,java,Java,我对Java有一个非常基本的疑问。我有以下课程: userViewtest.java: package source; public class userViewTest{ public static void main(String[] args){ userView usersView = new userView(); usersView.printUsers(); } } 然后是userView.java: package
package source;
public class userViewTest{
public static void main(String[] args){
userView usersView = new userView();
usersView.printUsers();
}
}
然后是userView.java:
package source;
public class userView{
String test="My test String";
public void printUsers(){
System.out.println(test);
}
}
如果这是一个愚蠢的问题,请原谅,但是当创建userView对象时,字符串测试会被实例化吗,因为当我调用usersView.printUsers()时;字符串测试打印得非常完美。但是我不知道什么时候创建对象,里面的变量会加载值
test
是类成员。每个userView
(应命名为userView
)对象的值为test
当您创建一个对象时,您为它分配内存,并返回对该内存的引用,在该内存中您有这个变量。我建议你通过考试来更好地理解这一点。
考试
是班级成员。每个userView
(应命名为userView
)对象的值为test
当您创建一个对象时,您为它分配内存,并返回对该内存的引用,在该内存中您有这个变量。我建议您通过a更好地理解这一点。是的,在您创建对象的那一刻,java在堆上为您的对象创建空间,并将您的对象存储在那里,其中包含实例变量(在您的情况下,test是变量)
请参见此以获取详细解释
-->
是的,在您创建对象时,java会在堆上为您的对象创建空间,并将您的对象存储在其中,其中包含实例变量(在您的情况下,test是变量)
详细解释请参见此
-->
您的问题不太清楚。你应该用大写字母来开始一个类名。因为类名和变量名都是相同的,所以在尝试调用对象时会导致混淆
UserView usersView = new userView(); // Here, you are creating a new instance of
// userView which refers to the same memory location
此
usersView
包含UserView
的所有属性。现在,您可以通过方法名调用它们来调用它们。您的问题不太清楚。你应该用大写字母来开始一个类名。因为类名和变量名都是相同的,所以在尝试调用对象时会导致混淆
UserView usersView = new userView(); // Here, you are creating a new instance of
// userView which refers to the same memory location
此usersView
包含UserView
的所有属性。现在可以通过方法名调用它们来调用它们