在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
2016-08-24
代碼是從上往下執行。
輸出null:0;因為調用eat()時候,變量name和age還沒賦值;
如果把dog.eat();移到dog.age=2;的下面,當執行eat()的時候,name和age則已經被賦值了。
2016-08-24
可以使用構造方法對像進行初始化,給其賦值