作者TonyQ (骨头)
看板java
标题Re: 请问一下关於建构子的覆载
时间Wed Mar 8 11:28:07 2006
※ 引述《[email protected] (不可以)》之铭言:
: 我照着书上的范例打的程式:
: 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();
执行Animal()
=> i==4 故不符合(i!=0&&i!=2&&i!=4)的叙述
=>
animal.legs=4
: Animal animal2=new Animal();
执行Animal() => setLegs(4)
=> i==4 故不符合(i!=0&&i!=2&&i!=4)的叙述
=>
anima2.legs=4
: Animal animal3=new Animal(10);
执行Animal(int k) => setLegs(k)
=> i==10 故符合(i!=0&&i!=2&&i!=4)的叙述
=>
print error! =>
animal3.legs 没有被给值 所以是0
: animal1.setLegs(3);
=> i==3 故符合 叙述
=>
print error! =>
animal1.legs维持原样 (4)
: animal2.setLegs(2);
=> i==2 故不符合 叙述 =>
animal2.legs=2
: System.out.println("animal1 has "+animal1.getLegs()+"legs.");
4
: System.out.println("animal2 has "+animal2.getLegs()+"legs.");
2
: System.out.println("animal3 has "+animal3.getLegs()+"legs.");
0
: }
: }
: 执行结果是
: Wrong number of legs!
: Wrong number of legs!
: animal1 has 4 legs.
: animal1 has 2 legs.
^
: animal1 has 0 legs.
^
这是不是打错字?? 怎麽都是1 跟你上面的System.out.println就不一样了-.-
: 跟书上的结果一样,但是书上却说只有animal2的legs数有设定成功,所以显示是2
: 其余animal1和animal3的legs都是0
: 跟run出来的结果为什麽不一样呢?
: 请各位大大解答一下,谢谢!
流程会说话‧ :)
--
String temp="relax"; | Life just like programing
while(buringlife) String.forgot(temp); | to be right or wrong
while(sleeping) brain.setMemoryOut(); | need not to say
stack.push(life.running); | the complier will
stack.push(scouting.buck()); | answer your life
stack.push(bowling.pratice()); | Bone
everything
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.240.58