public class TheSecondLab04 {
public static void main(String[] args) {
Cylinder.Circle circle = new Cylinder(5).new Circle(2);
}
}
class Cylinder {//外部类
private int height;//高
final double Pi = 3.1415926;
public Cylinder(int height) {
this.height = height;
}
//我们认为调用这个方法的对象都是圆柱体
public double CalculateVolume(Cylinder cylinder) {
return 1.0;//就是这里想直接返回答案,但是不会调用内部类的求面积方法
}
class Circle {//内部类
private double r;//半径
public Circle(double r) {this.r = r;}
public double quadrature(double r){return Pi*r*r;}
public double getR() {return r;}
public void setR(double r) {this.r = r;}
}
public int getHeight() {return height;}
public void setHeight(int height) {this.height = height;}
}
类主要是用来封装属性,对外提供方法,因此对于圆柱体类来说,可以将圆柱体的高和圆形作为属性,然后提供一个对外提供一个获取体积的方法,对于圆形来说也是如此。示例代码如下:
public class Cylinder {
/**
* 高
*/
private int height;
/**
* 圆
*/
private Circle circle;
public Cylinder(Circle circle, int height) {
this.circle = circle;
this.height = height;
}
/**
* 体积
*
* @return
*/
public double calculateVolume() {
return this.circle.quadrature() * height;
}
public static class Circle {
/**
* 半径
*/
private double r;
public Circle(double r) {
this.r = r;
}
/**
* 面积
*
* @return
*/
public double quadrature() {
return Math.PI * r * r;
}
}
}
public class TheSecondLab04 {
public static void main(String[] args) {
Cylinder cylinder = new Cylinder(new Cylinder.Circle(2), 5);
System.out.println("体积:"+cylinder.calculateVolume());
}
}