Java語言程序設計 上機實驗4 掌握聲明接口、一個類實現接口的聲明和使用方法

Java語言程序設計 上機實驗4java

實驗目的數組

理解接口的做用,理解接口和實現接口的類的關係,掌握聲明接口、一個類實現接口的聲明和使用方法;熟悉Java語言包和實用包中的經常使用類。this

實驗內容:(*)爲選作spa

  1. 聲明圓柱體類Cylinder,繼承橢圓類Ellipse(實現周長Perimeter接口和麪積Area接口),爲圓柱體類設計較爲全面的構造方法,並實現體積Volume接口,計算表面積和體積。
  2. Java的若干關鍵字(15個以上)保存在一個字符串數組中,對其按升序排列,再採用順序查找二分法查找,判斷一個字符串是不是Java關鍵字。
  3. (*) 調試和修改」 實驗4-src.zip」中的源代碼,使GroupSort程序能正確執行。再在GroupSort.java中增長按姓名查找的模糊查詢和按出生日期排序的功能。好比,在Person對象數組中模糊查找名字包含」小」字的對象。

實驗要求:設計

1. 在實驗報告中給出程序運行結果截圖。調試

2. 源程序代碼附到實驗報告的最後。code

3. 認真填寫實驗報告並妥善存檔,在上機實驗課以前發送電子版實驗報告至 wsycup@foxmail.com對象

注意郵件標題附件實驗報告文件名均爲:blog

Java2實驗報告N_學號_姓名排序

其中N爲阿拉伯數字,指第幾回實驗,例如

Java2實驗報告3_ 2012010400_李雷

請嚴格按照規定的格式發送郵件(注意標題中Java」後的數字「2」)郵件標題不符合格式要求等同於未交做業,並在規定的時間發送實驗報告郵件,過時無效。

4. 實驗報告雷同者將不能獲得相應的平時分。

 

 

附錄:實驗報告

實驗題目__實驗四___

學號_2014011329_    姓名_許愷__     班級__計算機14-1____     時間__2016.4.26____

實驗題目解答

一.

 

二.

 

:源程序

一.

Cylinder.Java
package one;

public class Cylinder extends Ellipse implements IVolume{

    /**
     * @param args
     */
    int high;
    Cylinder(){
        this.high=6;
    }
    public double Volume(){
        return radius_a*radius_b*3.14*high;
    }
    public double Area(){
        return radius_a*radius_b*3.14*2+high*Perimeter();
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        IVolume A=new Cylinder();
        IVolume V=new Cylinder();
        System.out.println("表面積是"+A.Area());
        System.out.println("體積是"+V.Volume());
    }

}
Ellipse.java
package one;

public class Ellipse implements IPerimeter,IArea{ //橢圓類
    protected double radius_a; //a軸半徑
    protected double radius_b; //b軸半徑
    public Ellipse(double radius_a) { //構造方法
        this.radius_a = radius_a;
    }
    public Ellipse(double radius_a, double radius_b) { //構造方法
        this.radius_a = radius_a; this.radius_b = radius_b;
    }
    public Ellipse() { this(4,4); }
    public String toString() {
        return "a軸半徑"+this.radius_a+",b軸半徑"+this.radius_b;
    }
    public double Area() { //計算橢圓面積,覆蓋父類的抽象方法
        return Math.PI*this.radius_a*this.radius_b;
    }
    public double Perimeter(){ //計算橢圓周長,覆蓋父類的抽象方法
        return Math.PI*(this.radius_a+this.radius_b);
    }
}

IArea.java
package one;

public interface IArea {
    public double Area();
}

IPerimeter.java
package one;


public interface IPerimeter {
    public double Perimeter();
}

IVolume.java
package one;

public interface IVolume {
    public double Volume();
    public double Area();
}


二.
package two;
import java.util.Arrays;
public class Q2 {
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String[] a=new String[20];
        String b=new String();
        String c=new String();
        b="g";
        a[0]="a";a[1]="b";a[2]="c";a[3]="d";a[4]="e";a[5]="f";a[6]="g";a[7]="h";
        a[8]="i";a[9]="j";a[10]="k";a[11]="l";a[12]="m";a[13]="n";a[14]="o";
        for(int i=0;i<15;i++){
            for(int j=i+1;j<15;j++){
                if(a[i].compareTo(a[j])>0){
                    c=a[i];
                    a[i]=a[j];
                    a[j]=c;
                }
            }
        }
        if(sxcz(b,a)){
            System.out.println("順序查找法已查找到");
        }
        else{
            System.out.println("順序查找未找到");
        }
        if(efcz(b,a)){
            System.out.println("二分法查找法已查找到");
        }
        else{
            System.out.println("二分法查找未找到");
        }
    }
    public static boolean sxcz(String b,String[] a){
        for(int i=0;i<20;i++){
            if(b==a[i]){
                return true;
            }
        }
        return false;
    }
    public static boolean efcz(String b,String[] a){
        int front=0;
        int end=14;
        int mid=7;
        for(;end>=front;){
            if(a[mid]==b)
                return true;
            else if(a[mid].compareTo(b)>0){
                end=mid-1;
                mid=(mid+front)/2;
            }
            else{ 
                front=mid+1;
                mid=(front+end)/2;
            }
        }
        return false;
    }
}

 

 

反思與總結

此次實驗鍛鍊了對於接口的使用,也讓我更加理解接口的功能和在整個java體系中的位置和做用,我覺的對於接口的使用和理解還能夠更加的深刻一些,讓你們咱們更加體會到java語言的強大。

相關文章
相關標籤/搜索