java面向抽象編程,可以讓程式員專註於程式的邏輯結構設計

來源:互聯網
上載者:User

標籤:

/* *建立的抽象類別,把這個抽象類別交給別人,別人的類需要繼承該抽象類別*求得一個立體的底面積,但是我們可以不用管別人是怎麼這個底面積的。 */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面向抽象編程,可以讓程式員專註於程式的邏輯結構設計

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.