1. 程式人生 > 其它 >Java類-介面-異常

Java類-介面-異常

技術標籤:Javajava介面

實驗(2):類-介面-異常

一、實驗目的:
學生能夠自己編寫類及介面的程式設計;能夠自定義異常類。
二、實驗要求:
獨立完成程式的編寫,並把源程式貼上到每個題目的下面,字型為“Times New Roman”,大小為“小四”,單倍行距,不能有空行,實驗報告表頭部分資訊填寫完整,格式不能修改。
三、實驗內容:
(一)建立一個名為Circle的類,半徑為r,此類有2個構造方法,一個預設的無參構造方法;一個有參構造方法,引數為r。包含3個例項函式:
(1)double getR():獲得半徑r的值。
(2)double getArea():獲得圓的面積。
(3)void setR(double r):設定半徑r的值。

並編寫類TestCircle測試Circle類。
源程式:

class Circle {
	final double PI = 3.1415926;
    private double r = 100;
    Circle(){}
    Circle(double r){
    	this.r = r;
    }
    public double getR(){
    	return r;
    }
    public double getArea(){
    	return PI*r*r;
    }
    public void setR(double r){
    	this.r = r;
    }
}
public class TestCircle {
	    public static void main(String[] args) {
       Circle c1 = new Circle();
       c1.setR(1);
       System.out.println(c1.getR());
       System.out.println(c1.getArea());
       Circle c2 = new Circle(10);
       c1.setR(1);
       System.out.println(c1.getArea());
       System.out.println(c2.getR());
       System.out.println(c2.getArea());
       c2.setR(13);
       System.out.println(c2.getArea());
	}

		private char[] getArea() {
			// TODO Auto-generated method stub
			return null;
		}

		private char[] getR() {
			// TODO Auto-generated method stub
			return null;
		}
}

執行結果截圖:

在這裡插入圖片描述

(二)建立一個名為Triangle的類,三個邊為a,b,c,此類有2個構造方法,一個預設的無參構造方法;一個有參構造方法,引數為a,b,c。包含3個例項函式:
(1)double[] getABC():獲得三個邊的值。
(2)double getArea():獲得三角形的面積。
(3)void setABC(double a, double b, double c):設定三個邊的值。
(4)在有參構造方法和setABC(double a, double b, double c)方法中要判斷三個引數是否能構成一個三角形。如果不能構成三角形,則丟擲NotTriangleException異常(NotTriangleException類為自定義異常類),顯示異常資訊“a,b,c不能構成三角形”。

並編寫類TestTriangle測試Triangle類。
源程式:

class Triangle {
    private double a,b,c;
    Triangle(){}
    Triangle(double a,double b,double c){
    	if(a+b>c&a+c>b&c+b>a){
    		this.a = a;
        	this.b = b;
        	this.c = c;
    	}else{
    		System.out.println("三邊不能構成三角形");
    	}
    }
     double[] gestABC(){
    	double[] x = {a,b,c};
    	return x;
    }
    double getArea(){
    	double s = a+b+c;
    	s = s/2;
    	s=s*(s-a)*(s-b)*(s-c);
    	System.out.println("s:"+s);
    	double x = Math.pow(s, 1.0/2);
    	System.out.println("x:"+x);
    	return x;
    }
    void setABC(double a,double b,double c){
    	this.a = a;
    	this.b = b;
    	this.c = c;
    }
}
public class TestTriangle {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Triangle c1 = new Triangle();
		Triangle c2 = new Triangle(3,4,5);
	       System.out.println(c1.gestABC());
	       System.out.println(c1.getArea());
	       c1.setABC(3,4,5);
	       System.out.println(c1.getArea());
	       
	       System.out.println(c2.gestABC());
	       System.out.println(c2.getArea());
	       c2.setABC(3,4,5);
	       System.out.println(c2.getArea());

	}
}

執行結果截圖:

在這裡插入圖片描述

(三)設計一個動物聲音“模擬器”,希望模擬器可以模擬許多動物的叫聲,要求如下:
(1)編寫介面Animal。介面中有2個抽象方法:cry()和getAnimalName(),即要求實現該介面的各種具體動物類給出自己的叫聲和種類名稱。
(2)編寫模擬器類Simulator。該類有一個playSound(Animal animal)方法,引數animal可以呼叫實現Animal介面的實現類中重寫的cry()方法列印具體動物的聲音,呼叫重寫的getAnimalName()方法列印動物種類的名稱。
(3)編寫實現Animal介面的類Dog和Cat。
(4)編寫主類TestSimulator。在主類的main方法中至少包含如下程式碼:
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());

源程式:

 class RecTangle {
    double h,w;
    RecTangle(){}
    RecTangle(double a,double b){
    	this.h = h;
    	this.w = w;
    }
    double[]getHW(){
    	double[] x = {h,w};
    	return x;
    }
    double getArea(){
    	double s = h*w;
    	return s;
    }
    void setHW(double h,double w){
    	this.h = h;
    	this.w = w;   	
    }
}
public class TestRecTangle {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		RecTangle c1 = new RecTangle();
	       c1.setHW(1,2);
	       System.out.println(c1.getHW());
	       System.out.println(c1.getArea());
	       RecTangle c2 = new RecTangle();
	       c1.setHW(1,2);
	       System.out.println(c1.getArea());
	       System.out.println(c2.getHW());
	       System.out.println(c2.getArea());
	       c2.setHW(1,2);
	       System.out.println(c2.getArea());

	}
}

執行結果截圖:
在這裡插入圖片描述

四、實驗小結
(寫出你在此次試驗中遇到的問題、解決方法及你的收穫。刪除本行)