Java實驗3 抽象類別和介面(2學時)

來源:互聯網
上載者:User
 一、實驗目的

1. 掌握Java中抽象類別和抽象方法的定義;

2. 掌握Java中介面的定義,熟練掌握介面的定義形式以及介面的實現方法。

二、實驗內容

1、按照要求使用Java進行編碼。

1) 編寫一個抽象類別Shape,其中有抽象方法getArea()和getPerimeter()

2) 在Shape類的基礎上派生出Rectangle和Circle類,二者都實現了計算面積的方法getArea()和計算周長的方法getPerimeter();

3) 構造main函數,產生Rectangle和Circle對象,並用Shape類型的變數調用Rectangle和Circle對象的getArea()和getPerim()方法。

2、以電話為父類,行動電話和固定電話為兩個子類,並使行動電話實現介面:可移動。固定電話又有子類:無繩電話。定義介面及各類,明確他們的繼承關係。

3、在實驗2中所實現的Teacher類的基礎上,修改Teacher類的代碼,要求:由多個Teacher對象所形成的數組可以使用Arrays.sort方法進行排序(編號由低到高排序)。

三、實驗要求

完成程式設計並提交實驗報告。

<1>

package shape;abstract class Shape {public abstract  void getArea();public abstract void getPerimeter();}
package shape;public class Circle extends Shape{private int r;public Circle(int r){this.r = r;}public void getArea(){System.out.println("圓面積為:"+Math.PI*r*r);}public void getPerimeter(){System.out.println("圓周長為:"+2*Math.PI*r);}public static void main(String[] args){Shape c = new Circle(4);c.getArea();c.getPerimeter();}}

package shape;public  class Rectangle extends Shape{private int a,b;public Rectangle(int a,int b){this.a = a;this.b = b;}public void getArea(){System.out.println("矩形面積為:"+a*b);}public void getPerimeter(){System.out.println("矩形周長為:"+2*(a+b));}public static void main(String[] args){Shape r = new Rectangle(3,4);r.getArea();r.getPerimeter();}}

 

package Teacher;import java.util.Arrays;public class teachers implements Comparable{    private String no;    private int age;    private String name;    private String seminary;    teachers(String no,String name,int age,String seminary)    {    this.no=no;    this.name=name;    this.age=age;    this.seminary=seminary;    }    public void getName()    {    System.out.println("姓名:"+name);    }    public void getNo()    {    System.out.println("編號:"+no);    }    public void getAge()    {    System.out.println("年齡:"+age);    }    public void getSeminary()    {    System.out.println("學院:"+seminary);    }    public void setSeminary(String seminary)    {    this.seminary=seminary;    }    public void setNo(String no)    {    this.no=no;    }    public void setName(String name)    {    this.name=name;    }    public void setAge(int age)    {    this.age=age;    }    public boolean equals(String no)    {    if(this.no==no)    {    return true;    }    else    {    return false;    }    }    public String toString()    {    return "姓名:"+name+" "+"編號:"+no+" "+"年齡:"+age+" "+"學院:"+seminary;    }    public int compareTo(Object o){teachers t = (teachers)o;if(this.no.compareTo(t.no)>0)return 1;if(this.no.compareTo(t.no)<0) return -1;return 0;}    public static void main(String args[])    {    teachers[]  t = new teachers[5];        t[0] = new teachers("0901051717","王濤",26,"資訊學院");        t[1] = new teachers("0901051714","司吉峰",21,"資訊學院");        t[2] = new teachers("0901051719","王磊",22,"資訊學院");        t[3] = new teachers("0901051713","若曦",19,"資訊學院");        t[4] = new teachers("0901051715","成龍",24,"資訊學院");        Arrays.sort(t);        for(int i=0;i<5;i++)        {        t[i].getName();        }    }}

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.