class Tree
{
int heigth ;
Tree()
{
System.out.println("Planting a seeding") ;
//heigth ;
}
Tree(int i)
{
System.out.println("Creating new Tree that is ~~~~~~~~"+i+" feeting tall") ;
//i=this.heigth ; //在这里this.heigth没有得到i的值,i的值也没改变
this.heigth=i ; //在这里this.heigth得到了i的值
}
void info()
{
System.out.println("Creating new Tree that is ……"+heigth+" feet tall") ;
}
void info(String s)
{
System.out.println(s+":tree is "+heigth+" feet tall") ;
}
}; public class Overloading
{
public static void main(String[] args)
{
for (int i=0;i<5 ;i++ )
{
Tree t=new Tree(i) ;
t.info() ;
t.info("overloading method ") ;
}
new Tree() ;
}
};主要问题是this.heigth=i与i=this.heigth 得到的值为什么会不一样呢?是什么原因.
{
int heigth ;
Tree()
{
System.out.println("Planting a seeding") ;
//heigth ;
}
Tree(int i)
{
System.out.println("Creating new Tree that is ~~~~~~~~"+i+" feeting tall") ;
//i=this.heigth ; //在这里this.heigth没有得到i的值,i的值也没改变
this.heigth=i ; //在这里this.heigth得到了i的值
}
void info()
{
System.out.println("Creating new Tree that is ……"+heigth+" feet tall") ;
}
void info(String s)
{
System.out.println(s+":tree is "+heigth+" feet tall") ;
}
}; public class Overloading
{
public static void main(String[] args)
{
for (int i=0;i<5 ;i++ )
{
Tree t=new Tree(i) ;
t.info() ;
t.info("overloading method ") ;
}
new Tree() ;
}
};主要问题是this.heigth=i与i=this.heigth 得到的值为什么会不一样呢?是什么原因.
i=this.heigth 把height的值赋给i
类Tree中定义的heigth有一个系统给的初始值为0
传递参数中的i传递的是值而不是内存地址,因此相当与Tree(int i)方法中的一个局部变量,出了方法体就不起作用了.