码迷,mamicode.com
首页 > 编程语言 > 详细

java面向抽象编程,可以让程序员专注于程序的逻辑结构设计

时间:2015-04-15 00:44:32      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

/*
 *建立的抽象类,把这个抽象类交给别人,别人的类需要继承该抽象类
*求得一个立体的底面积,但是我们可以不用管别人是怎么这个底面积的。
 */
package com.pan.e1;

/**
 *
 * 作者:属于雨灵的夜
 */
public abstract class Gemetry {
    public abstract double getArea();
}
  •  因为我们希望代码能实现各种类型的体积,所以我们把需要经常变化的底面积作为抽象类,让它作为它的子类的上转类型。
/*
*面向抽像类,设计主体功能
*Gemetry类和Volume类就是我们自己实现的,目的是为了计算体积。
 */
package com.pan.e1;

/**
 *
 * 作者:属于雨灵的夜
 */
public class Volume {
    Gemetry botton;
    double height;
    
    public Volume(Gemetry botton , double height){
        this.botton=botton;
        this.height=height;
    }
    
    void changeBotton(Gemetry botton){
        this.botton=botton;
    }
    
    public double getVolume(){
        return botton.getArea()*height;
    }
}
  • 求体积的类,但在这个类里我们并没有把要求的物体形状写死,而是通过抽象类来实现底面的计算,这样各种不同子类继承抽象类从而实现多种形状的
  • 体积的计算。让我们的代码更加健壮强大。
/*
 * 乙为我们实现求三角形的面积,因为底面是个四边形,所以我们求得的是棱柱体的体积
 */
package com.pan.e1;

/**
 *
 * 作者:属于雨灵的夜
 */
public class Lader extends Gemetry {
    double a,b,h;
    public Lader(double a,double b,double h){
        this.a=a;
        this.b=b;
        this.h=h;
    }
    
    public double getArea(){
        return(0.5*(a+b)*h);
    }
}
  •   一个求底面为梯形的子类
/*
 *甲为我们实现求圆的面积,因为底面是个圆,所以求是求的圆柱体积
 */
package com.pan.e1;

/**
 *
 * 作者:属于雨灵的夜
 */
public class Circle extends Gemetry {
    private double r;
    public Circle(double r){
        this.r=r;
    }
  public double getArea(){
      return (3.14*r*r);
  }
}
  •   一个底面为圆的子类。
/*
 *测试我们写的两个类:Gemetry和Volume
*现在如果别人帮我们实现圆柱体的底面积,我们就可以计算圆柱体的体积了。
 */
package com.pan.e1;

/**
 *
 * 作者;属于雨灵的夜
 */
public class Main {
    public static void main(String[] args){
        Volume v1;
        Gemetry g;
        
       g=new Lader(2,2,10);
       System.out.println("梯形的面积"+g.getArea());
       v1=new Volume(g,58);
       System.out.println("梯形底的柱体的体积"+v1.getVolume());
       
        g=new Circle(2.0);
        System.out.println("圆的面积"+g.getArea());
        v1=new Volume(g,4.0);
        System.out.println("圆柱体的体积"+v1.getVolume());
    }
}
  •  代码测试类

      通过编写不同的类继承Gemetry抽象类,我们就可以实现不通的形状的立体的体积,而我们之前的代码不需要任何的变动。

      通过利用上转类型,我们可以面向抽象来编程,可以在前期专注于程序的逻辑设计,然后到后面再用子类继承抽象类或者接口来

  实现具体的功能,或者子类的编写可以交给别人来写,达到并行开发软件的效果,从而提高软件的开发速度,也许这就是团队开发软件时采取的方法吧。

  这就是面向对象编程!!!  

 

java面向抽象编程,可以让程序员专注于程序的逻辑结构设计

标签:

原文地址:http://www.cnblogs.com/panshaobao/p/4426394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!