为了账号安全,请及时绑定邮箱和手机立即绑定

在main函数里,创建对象后,如果先调用方法然后调用属性,输出的属性值为空,为什么?

Animal 类:

public class Animal {
    
    public int age;
    public String  name;
    public void eat(){
        System.out.println(name+":"+age);
        System.out.println("animal can eat food");
    }

}


Dog 类(继承Animal类):

public class Dog extends Animal {

}

入口类Main 函数:

public class TestAnimal {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Dog dog = new Dog();
        dog.eat();
        dog.name="beibie";
        dog.age=2;
    }

}

输出结果:null:0
animal can eat food


如果把dog.eat();移到dog.age=2;的下面,输出结果:

beibie:2
animal can eat food

正在回答

3 回答

代码是从上往下执行。

输出null:0;因为调用eat()时候,变量name和age还没赋值;

如果把dog.eat();移到dog.age=2;的下面,当执行eat()的时候,name和age则已经被赋值了。

1 回复 有任何疑惑可以回复我~
#1

cherry815 提问者

非常感谢,懂了,多谢指教
2016-08-31 回复 有任何疑惑可以回复我~

可以使用构造方法对像进行初始化,给其赋值


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在main函数里,创建对象后,如果先调用方法然后调用属性,输出的属性值为空,为什么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信