创建圆柱类cylinder,并在该类的一个构造方法内调用另一个私有的构造方法。
class cylinder
{
private double radius;
private int height;
private double pi=3.14;
String color;
public cylinder(double r,int h,String str)//定义有参数的构造方法
{
this();
System.out.println("有参构造方法被调用");
radius=r;
height=h;
color=str;
}
private cylinder()
{
System.out.println("无参构造方法被调用");
}
double area() {//定义缺省访问控制符的方法
return pi * radius * radius;
}
double volume()
{
return this.area() * height;
}
public void show()
{
System.out.println("圆柱体半径="+radius);
System.out.println("圆柱体高="+height);
System.out.println("圆柱体颜色="+color);
}
}
public class sentence {
public static void main(String[] args) {
cylinder volu=new cylinder(2.5,5,"蓝色");
System.out.println("圆柱低面积="+volu.area());
System.out.println("圆柱体体积="+volu.volume());
volu.show();
}
}
由于声明为private的构造方法无法在类外被调用,但因私有的无参数构造方法cylinder()与公告的带参数的构造方法cylinder(double r,int h, String str)是在同一类内,而在同一类内是可以访问私有成员的,所以本例中在公共的构造方法中用this()语句调用了私有构造方法。