关于面对抽象编程的一些初步理解
2017-09-28 17:27
218 查看
对程序的解读:
首先定义一个抽象类Geometry,底面不确定为什么形状,定义抽象方法用于求底面的面积,抽象方法,只能声明,不能实现
public abstract double getArea();
然后定义一个非抽象的类Pillar,采用构造方法,传入两个参数,第一个为抽象类求得的面积方法,(需要定义抽象类的子类,重写抽象方法),另一个是柱体的高
接下来定义求柱体体积的方法
定义抽象类的两个子类,分别为Circle和Rectangle
重写抽象方法
定义Application类,进行测试
main类中,为Geometry创建对象bottom,创建它的上转型对象
bottom = new Circle(3);
创建对象Pillar pillar = new Pillar(bottom,6)
三角形底流程类似,自行理解
public abstract class Geometry
{
public abstract double getArea();
}
public class Pillar
{
Geometry bottom;
double height;
//构造方法
Pillar(Geometry bottom,double height)
{
this.bottom = bottom;
this.height = height;
}
//求体积
public double getVolume()
{
return bottom.getArea()*height;
}
}
public class Circle extends Geometry
{
double r;
Circle (double r)
{
this.r = r;
}
public double getArea()
{
return 3.14*r*r;
}
}
public class Rectangle extends Geometry
{
double a,b;
Rectangle(double a,double b)
{
this.a = a;
this.b = b;
}
public double getArea()
{
return a*b;
}
}
public class Applacation {
public static void main(String[] args)
{
Pillar pillar;
Geometry bottom;
bottom = new Rectangle(3,4);
pillar = new Pillar(bottom,5);//柱体两个参数,一个为地面的面积,一个为高
System.out.println("地面为三角形的柱体体积为:"+pillar.getVolume());
bottom = new Circle(3);
pillar = new Pillar(bottom,5);
System.out.println("地面为圆形的柱体的体积为:"+pillar.getVolume());
}
}
首先定义一个抽象类Geometry,底面不确定为什么形状,定义抽象方法用于求底面的面积,抽象方法,只能声明,不能实现
public abstract double getArea();
然后定义一个非抽象的类Pillar,采用构造方法,传入两个参数,第一个为抽象类求得的面积方法,(需要定义抽象类的子类,重写抽象方法),另一个是柱体的高
接下来定义求柱体体积的方法
定义抽象类的两个子类,分别为Circle和Rectangle
重写抽象方法
定义Application类,进行测试
main类中,为Geometry创建对象bottom,创建它的上转型对象
bottom = new Circle(3);
创建对象Pillar pillar = new Pillar(bottom,6)
三角形底流程类似,自行理解
public abstract class Geometry
{
public abstract double getArea();
}
public class Pillar
{
Geometry bottom;
double height;
//构造方法
Pillar(Geometry bottom,double height)
{
this.bottom = bottom;
this.height = height;
}
//求体积
public double getVolume()
{
return bottom.getArea()*height;
}
}
public class Circle extends Geometry
{
double r;
Circle (double r)
{
this.r = r;
}
public double getArea()
{
return 3.14*r*r;
}
}
public class Rectangle extends Geometry
{
double a,b;
Rectangle(double a,double b)
{
this.a = a;
this.b = b;
}
public double getArea()
{
return a*b;
}
}
public class Applacation {
public static void main(String[] args)
{
Pillar pillar;
Geometry bottom;
bottom = new Rectangle(3,4);
pillar = new Pillar(bottom,5);//柱体两个参数,一个为地面的面积,一个为高
System.out.println("地面为三角形的柱体体积为:"+pillar.getVolume());
bottom = new Circle(3);
pillar = new Pillar(bottom,5);
System.out.println("地面为圆形的柱体的体积为:"+pillar.getVolume());
}
}
相关文章推荐
- 关于tcp协议断开连接以及在socket编程时候连接的一些理解
- 关于Js OOP编程 创建对象的一些理解。
- 关于球谐函数一些初步的理解
- 关于网络编程中一些常用函数的理解
- JAVA初学:关于“面对对象”的一些理解与感悟
- 关于抽象工厂的一些理解
- 关于android编程的curso对象 moveToNext()方法的一些理解
- 关于版本管理的一些初步理解
- 对js 面对对象编程的一些简单的理解
- 关于hashcode()方法和equals()方法的一些理解
- 关于编程的一点理解
- 关于JDBC和一些持久化框架SQL预编译的理解整理
- 关于Myeclipse调试的一些个人理解
- javascript中关于sort函数的一些理解
- 关于坐标系(大地坐标、平面坐标、投影、北京54、西安80、WGS84)的一些理解
- 关于编程上的一些建议
- 关于Android的HAL的一些理解
- 关于如何学好游戏3D引擎编程的一些经验
- 关于最新出台的政策的一些理解
- 关于CUDA的编程模型的一些介绍