微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在创建对象并使用getter和setter获取该整数值时整数为0?

如何解决为什么在创建对象并使用getter和setter获取该整数值时整数为0?

public class Test {

    public static void main(String[] args) {
    
        Test2 t2 = new Test2();
        t2.test();
        System.out.println(t2.getNum());
        
    }
}

public class Test2 {

    private int num;

    public void test() {
        Test2 t = new Test2();
        t.setNum(3);
        System.out.println(t.getNum());
    }
    
    public int getNum() {
        return num;
    }

    public void setNum(int bruh) {
        this.num = bruh;
    }
    
}

每当我创建Test2的对象并使用num设置t2.test()的值时,使用t2.getNum()时它将在控制台上打印为0。为什么返回值0?以及如何解决它,使其真正获得我想要的价值?类TestTest2是单独的文件,作为补充。

解决方法

public void test() {
    Test2 t = new Test2();
    t.setNum(3);
    System.out.println(t.getNum());
}

您在该方法中本地创建了一个Test2的新实例,这对this实例没有影响。

public void test() {
    setNum(3);
}

就足够了。

,

t2t或2个不同的对象。

调用t2.test()时,将创建一个新对象t,并设置t对象而不是t2的属性num。因此,当您调用t2.getNum()时,num keep的t2属性是默认值,对于Java中的整数,默认值为零。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。