class A
{
int i = 1;
int j = 9;
public A()//第一种构造函数
{
System.out.printf("hhh\n");
}
public A(int j)//第二种构造函数
{
i = j;
}
}
class B
{
public static void main(String[] args)
{
A bb = new A ();//18行定义了一个类的对象
A aa = new A (7);//19行也定义了一个类的对象
System.out.printf("%d %d",aa.i,aa.j);
}
}
总结:18行定义了一个对象,由于上面的A类中没有默认public A(){},所以需要自己手动加上一个,才能保证程序正确,然后必然会执行里面的hhh。第19行也定义了一个类的对象。把里面赋值为7,则在A类中寻找public A(int j){},然后必然运行里面的i = j;最终结果是hh 7 9