当前位置: 代码迷 >> Eclipse >> 关于java中构造方法的有关问题
  详细解决方案

关于java中构造方法的有关问题

热度:95   发布时间:2016-04-23 13:54:28.0
关于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;
}  
不应该读取啊

------解决方案--------------------
实例化后自动调用相应的构造方法,这是规定,记住吧,为什么说给变量初始化,是因为经常把给变量赋初值的这一操作放在构造方法中