第一篇文章和第一个问题。
我是一名java初学者,所以如果我的问题非常基本,我会提前道歉,但我已经尝试了2天在互联网和StackOverFlow上找到答案而没有成功
我想做的事情:我想“设置”变量的值,然后多次“获取”它。
发生了什么:第一次“获取”它,它(正确地)返回我初始化的值。以下时间它返回“null”
这里的代码 1)主要课程
public class Provasetgetaltraclass {
public static void main(String[] args) {
set_e_get_1 set_e_get_1Obj = new set_e_get_1();
set_e_get_1Obj.execute_var_to_set_e_get1();
set_e_get_1Obj.execute_var_to_set_e_get2();
}
}
2)带有动作的课程
public class set_e_get_1 {
public void execute_var_to_set_e_get1(){
var_to_set_e_get var_to_set_e_getObj = new var_to_set_e_get();
var_to_set_e_getObj.setname("test");
System.out.println(var_to_set_e_getObj.getname());
}
public void execute_var_to_set_e_get2(){
var_to_set_e_get var_to_set_e_getObj = new var_to_set_e_get();
System.out.println(var_to_set_e_getObj.getname());
}
}
3)带变量的类以及set和get方法
public class var_to_set_e_get {
private String name;
public void setname (String new_name){
name = new_name;
}
public String getname (){
return name;
}
}
4)当我运行main时,结果是
test
null
(我想要的是测试和测试)
我不希望将变量存储在数据库或文件中,除非有必要,因为我希望将其随时工作
如果你能帮助我,我真的很感激 非常感谢
答案 0 :(得分:0)
您的两种方法execute_var_to_set_e_get1
和execute_var_to_set_e_get2
分别创建了var_to_set_e_get
类的不同对象。您只在其中一个中设置属性的值,因此当然在另一个中它将为null。
如果希望第一个对象中存储的值在第二个方法中可用,则第一个方法必须返回它创建的对象,第二个方法应该接受该对象:
public var_to_set_e_get execute_var_to_set_e_get1(){
var_to_set_e_get var_to_set_e_getObj = new var_to_set_e_get();
var_to_set_e_getObj.setname("test");
System.out.println(var_to_set_e_getObj.getname());
return var_to_set_e_getObj;
}
public void execute_var_to_set_e_get2(var_to_set_e_get var_to_set_e_getObj){
System.out.println(var_to_set_e_getObj.getname());
}
public static void main(String[] args) {
set_e_get_1 obj = new set_e_get_1();
var_to_set_e_get v = obj.execute_var_to_set_e_get1();
obj.execute_var_to_set_e_get2(v);
}
答案 1 :(得分:0)
在每次调用方法execute_var_to_set_e_get1
和execute_var_to_set_e_get2
时,您会创建不同的对象。
在第一个中,您将name
设置为String
,但最后,您没有这样做。
因此,它将是null
(默认情况下)。
注意:您所描述的行为属于static
属性。如果您将name
声明为static
,则会在所有实例之间共享。