JAVAGet/Set返回null
第一篇文章和第一个问题 我是一名java初学者,因此如果我的问题非常基本,我提前表示歉意,但我已经尝试了两天在Internet和StackOverFlow上找到答案,但都没有成功 我想做的是:我想设置一个变量的值,然后多次将其返回 发生的情况:我第一次得到它时,它正确地返回我初始化的值。以下时间返回null 这是密码 1个主要类别JAVAGet/Set返回null,java,get,null,set,Java,Get,Null,Set,第一篇文章和第一个问题 我是一名java初学者,因此如果我的问题非常基本,我提前表示歉意,但我已经尝试了两天在Internet和StackOverFlow上找到答案,但都没有成功 我想做的是:我想设置一个变量的值,然后多次将其返回 发生的情况:我第一次得到它时,它正确地返回我初始化的值。以下时间返回null 这是密码 1个主要类别 public class Provasetgetaltraclass { public static void main(String[] args) {
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
我想要的是测试和测试
除非有必要,否则我不想将变量存储在数据库或文件中,因为我想让它动态工作
如果你能帮助我,我将非常感激
非常感谢您的两个方法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);
}
发生的情况是,在每次调用方法execute_var_to_set_e_get1和execute_var_to_set_e_get2时,您都在创建不同的对象 在第一个示例中,您将名称设置为字符串,但在最后一个示例中,您没有这样做 因此,默认情况下它将为null
注意:您描述的行为是静态属性。如果您将名称定义为静态,它将在所有实例之间共享。哇,您似乎没有阅读Java命名约定,是吗?:正如@kocko所提到的,如果不遵守标准的Java名称约定,就很难遵循您的代码。谢谢Christian!我不能投你的票,因为我还没有这个名声,但我只是在var_to_set_e_get类中将private改为static,现在它工作了,我得到了测试和测试。没问题。如果此答案有用并解决了您的问题,请随意接受: