JAVAGet/Set返回null

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) {

第一篇文章和第一个问题

我是一名java初学者,因此如果我的问题非常基本,我提前表示歉意,但我已经尝试了两天在Internet和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
我想要的是测试和测试

除非有必要,否则我不想将变量存储在数据库或文件中,因为我想让它动态工作

如果你能帮助我,我将非常感激 非常感谢

您的两个方法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,现在它工作了,我得到了测试和测试。没问题。如果此答案有用并解决了您的问题,请随意接受: