public class Animal
{
private int legs;
public Animal()
{
setLegs(4);
}public Animal(int l)
{
setLegs(l);
}public void eat()
{
System.out.println("Eating...");
}public void move()
{
System.out.println("Moving...");
}public void setLegs(int l)
{
if(l!=0&&l!=2&&l!=4)
{
System.out.println("Wrong number of legs!");
return;
}
legs=l;
}public int getLegs()
{
return legs;
}
}
public class Zoo
{
public static void main(String argv[])
{
Animal animal1=new Animal(9);
Animal animal2;
animal2=new Animal(2);System.out.println("animal1 has "+animal1.getLegs()+" legs.");
System.out.println("animal2 has "+animal2.getLegs()+" legs.");
animal1.eat();
animal2.move();
}
}运行结果:
Wrong number of legs!
animal1 has 0 legs.
animal2 has 2 legs.
Eating...
Moving...为何显示的是animal1 has 0 legs.
执行到Animal animal1=new Animal(9);
9!=0&&9!=2&&9!=4,再执行return吗?
不是animal1.getLegs()为一个不确定的值吗?
{
private int legs;
public Animal()
{
setLegs(4);
}public Animal(int l)
{
setLegs(l);
}public void eat()
{
System.out.println("Eating...");
}public void move()
{
System.out.println("Moving...");
}public void setLegs(int l)
{
if(l!=0&&l!=2&&l!=4)
{
System.out.println("Wrong number of legs!");
return;
}
legs=l;
}public int getLegs()
{
return legs;
}
}
public class Zoo
{
public static void main(String argv[])
{
Animal animal1=new Animal(9);
Animal animal2;
animal2=new Animal(2);System.out.println("animal1 has "+animal1.getLegs()+" legs.");
System.out.println("animal2 has "+animal2.getLegs()+" legs.");
animal1.eat();
animal2.move();
}
}运行结果:
Wrong number of legs!
animal1 has 0 legs.
animal2 has 2 legs.
Eating...
Moving...为何显示的是animal1 has 0 legs.
执行到Animal animal1=new Animal(9);
9!=0&&9!=2&&9!=4,再执行return吗?
不是animal1.getLegs()为一个不确定的值吗?
{
private int legs;
public Animal()
{
setLegs(4);
}public Animal(int l)
{
setLegs(l);
}public void eat()
{
System.out.println("Eating...");
}public void move()
{
System.out.println("Moving...");
}public void setLegs(int l)
{
if(l!=0&&l!=2&&l!=4)
{
System.out.println("Wrong number of legs!");
return;
}
legs=l;
}public int getLegs()
{
return legs;
}
}
public class Zoo
{
public static void main(String argv[])
{
Animal animal1=new Animal(9);
Animal animal2;
animal2=new Animal(2);System.out.println("animal1 has "+animal1.getLegs()+" legs.");
System.out.println("animal2 has "+animal2.getLegs()+" legs.");
animal1.eat();
animal2.move();
}
}
{
System.out.println("Wrong number of legs!");
return;
}
不是animal1.getLegs()为一个不确定的值吗?
一般整数都是0,对象是null
因为 legs 是int类型,Java中JVM自动给没有初始化的int类型的成员变量付初值0.执行到Animal animal1=new Animal(9);
9!=0&&9!=2&&9!=4,再执行return吗?
这里会return,所以legs=l; 不执行。不是animal1.getLegs()为一个不确定的值吗?
Class类型的付初值null.