本帖最后由 杨玉辉 于 2013-3-2 17:50 编辑
Person p1=new Person("lisi",20); //该语句仅仅是建立一个p1对象,并把参数lisi,20传给了与之对应的构造函数 Person(String name,int age)就完了,构造函数内部并没有对这两个参数进行操作
System.out.println("name="+name+",age="+age); //这条语句相当于“System.out.println("name="+this.name+",age="+this.age);”
在Half这个类中你上下文并没有定义 int age; String name;
所以就没有具体内容,也就没有具体输出内容。
而输出语句放在构造函数内
Person(String name,int age) {
this(name);
this.age=age;
System.out.println("name="+name+",age="+age);//为了方便说而已,才这么写的
}
很明显,就可以输出,就是你通过Person p1=new Person("lisi",20); 传进来的参数嘛。 当然可以输出咯
建议你这么写:
class Person
{
int age;
String name; //最好用private 关键字私有处理下 防止类外直接调用
Person(String name)
{
this.name=name;
}
Person(String name,int age)
{
this(name);
this.age=age;
}
public void method()
{
System.out.println("name="+name+",age="+age);
}
}
class Half
{
public static void main(String[] args)
{
Person p1=new Person("lisi",20);
p1.method(); // p1. mothod(); 构造函数调用 本类中的method()方法 可以提高代码复用性 再用到的时候,直接调用就可以了
}
}
个人见解,多指教 |