在main函數(shù)里,創(chuàng)建對象后,如果先調(diào)用方法然后調(diào)用屬性,輸出的屬性值為空,為什么?
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 函數(shù):
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;
?? ?}
}
輸出結(jié)果:null:0
animal can eat food
如果把dog.eat();移到dog.age=2;的下面,輸出結(jié)果:
beibie:2
animal can eat food
2016-08-24
代碼是從上往下執(zhí)行。
輸出null:0;因為調(diào)用eat()時候,變量name和age還沒賦值;
如果把dog.eat();移到dog.age=2;的下面,當執(zhí)行eat()的時候,name和age則已經(jīng)被賦值了。
2016-08-24
可以使用構(gòu)造方法對像進行初始化,給其賦值