关于java中构造方法的问题
class Aa
{ double x,y,z;
boolean boo;
public Aa(double a,double b,double c)
{ x=a;
y=b;
z=c;
if(a+b>c&&a+c>b&&c+b>a)
{ System.out.println("我是一个三角形");
boo=true;
}
else
{ System.out.println("我不是一个三角形");
boo=false;
}
}
public void 计算面积()
{ if (boo)
{ double p=(x+y+z)/2.0;
double area=Math.sqrt(p*(p-x)*(p-y)*(p-z));
System.out.println("面积是:"+area);
}
else
{ System.out.println("不是三角行,不能计算面积");
}
}
}
class Bruce
{
public static void main(String[] args)
{ Aa lin=new Aa(10,9,4);
lin.计算面积();
}
}
实例化对象时就会调用构造方法?使用new后第一条输出语句就输出了,一般实例化对象只会对成员变量初始化,只用调用方法时方法里面的语句才会被读取啊?我的意思是if(a+b>c&&a+c>b&&c+b>a)
{ System.out.println("我是一个三角形");
boo=true;
}
else
{ System.out.println("我不是一个三角形");
boo=false;
}
不应该读取啊
[解决办法]
实例化后自动调用相应的构造方法,这是规定,记住吧,为什么说给变量初始化,是因为经常把给变量赋初值的这一操作放在构造方法中