日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

《Java程序设计》实验报告——Java的接口与继承

發布時間:2024/10/5 java 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Java程序设计》实验报告——Java的接口与继承 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

浙江理工大學

Java程序設計》

?實驗報告

?20 19~20 20學年第 1學期?????

?

信息學院

?

計算機科學與技術183

?

申屠志剛

?

2018329621200

任課教師

任祝

9 周二 345節)

?? 計算機科學與技術專業

20 19 10

《Java程序設計》實 驗 報 告(三)

實驗名稱: Java的接口與繼承

實驗地點10-306

所使用的工具軟件及環境:

JDK1.7或1.8與Eclipse

?

?

一、實驗目的:

熟悉Java類的建立與使用。熟悉類的繼承、多態與動態綁定技術。

二、實驗內容:

題目1. 接口

體操比賽計算選手成績的辦法是去掉一個最高分和一個最低分再計算平均分,而學校考察一個班級的某科目的考試情況時,是計算全班學生的平均成績。請實現體操比賽得分計算的Gymnastics 類和學校科目考試分數計算的School 類,這兩個類都實現了ComputerAverage接口。其中,Gymnastics類實現了去掉一個最高分和一個最低分再計算平均分;School類計算全班學生的平均成績。

接口定義如下,其中輸入的參數是一組double類型的分數。

interface ComputerAverage{

public double average(double x[]);

}

題目2. 繼承

設計一個類Shape(圖形)包含求面積和周長的area()方法和perimeter()方法以及設置顏色的方法SetColor(),并利用Java多態技術設計其子類Circle(圓形)類、Rectangle(矩形)類和Triangle(三角形)類,并分別實現相應的求面積和求周長的方法。每個類都要覆蓋toString方法。

[]

海倫公式:三角形的面積等于s(s-a)(s-b)(s-c)的開方,其中s=(a+b+c)/2

?

三、要求:

(1)說明原理

題目1. 接口

Java接口創建與實現

題目2. 繼承

Java類的繼承、多態與動態綁定技術

(2)源代碼

題目1. 接口

Main.java

public class Main {

?

??? public static void main(String[] args) {

??????? // TODO 自動生成的方法存根

??????? ?double a[]={9.89,9.88,9.99,9.12,9.69,9.76,8.97};

??? ???? double b[]={89,56,78,90,100,77,56,45,36,79,98};

??? ???? ComputerAverage computer;

??? ???? computer=new Gymnastics();

??? ???? double result= computer.average(a);

??? ???? System.out.printf("%n");

??? ???? System.out.printf("體操選手最后得分:%5.3f\n",result);

??? ???? computer=new School();

??? ???? result=computer.average(b);

??? ???? System.out.printf("班級考試平均分數:%-5.2f\n",result);

??? }

?

}

ComputerAverage.java

public interface ComputerAverage{

??? public double average(double x[]);

}

Gymnastics.java

public class Gymnastics implements ComputerAverage {

?

??? public double average(double x[]) {

??????? int count=x.length;

??? ??? double aver=0,temp=0;

??? ???? ?? for(int i=0;i<count;i++){

??? ???? ?????? for(int j=0;j<count;j++){

??? ???? ?????????? if(x[j]<x[i])

??? ???? ?????????? {

??? ?????????????????? temp=x[j];

??? ?????????????????? x[j]=x[i];

??? ?????????????????? x[i]=temp;

??? ???? ?????????? }

??? ???????????? }

??? ??????? }

??? ???? for(int i=0;i<count-1;i++)

??? ???? {

??? ??? ?aver=aver+x[i];

??? ???? }

??? ???? if(count>2)

??? ??? ?aver=aver/(count-2);

??? ???? else

??????????? ?aver=0;

??? ???? return aver;

??? }

}

School.java

public class School implements ComputerAverage {

?

??? public double average(double x[]) {

??????? int count=x.length;

??? ??? double aver=0;

??? ??? for(int i=0;i<count;i++){

??? ???????? aver+=x[i];

??? ??? }

??? ??? aver=aver/count;

??? ??? return aver;

??? }

}

題目2. 繼承

Main.java

public class Main {

?

??? public static void main(String[] args) {

??????? // TODO 自動生成的方法存根

??????? Rectangle r=new Rectangle(3.0,4.0);

??????? Circle c=new Circle(3.0);

??????? Triangle s=new Triangle(4.0,3.0,5.0);

??????? Shape[] shapes=new Shape[3];

??????? shapes[0]=r;

??????? shapes[1]=c;

??????? shapes[2]=s;

??????? for(int i=0;i<shapes.length;i++) {

??????????? System.out.println(shapes[i].toString());

??????????? System.out.println("周長為:"+shapes[i].perimeter()+" "+"面積為:"+shapes[i].area());

??????? }

??? }

}

Shape.java

public abstract class? Shape {

??? String color="black";

??? public abstract double area();

??? public abstract double perimeter();

??? public void SetColor(String newcolor) {

??????? color=newcolor;

??? }

}

Circle.java

public class Circle extends Shape{

??? double r=0.0;

??? final double PI=3.1415926;

??? Circle(){

??????? this.r=0;

??? }

??? Circle(double r){

??????? this.r=r;

??? }

??? public String toString(){

??????? return ":半徑為"+r;

??? }

??? public double area() {

??????? return r*r*PI;

??? }

??? public double perimeter() {

??????? return 2*r*PI;

??? }

}

Rectangle.java

public class Rectangle extends Shape{

??? double a,b;

??? Rectangle(){

??????? this.a=0;

??????? this.b=0;

??? }

??? Rectangle(double a,double b){

??????? this.a=a;

??????? this.b=b;

??? }

??? public String toString(){

??????? return "矩形:邊長分別為"+a+","+b;

??? }

??? public double area() {

??????? return a*b;

??? }

??? public double perimeter() {

??????? return 2*(a+b);

??? }

}

Triangle.java

public class Triangle extends Shape{

??? double a,b,c;

??? Triangle(){

??????? this.a=0;

??????? this.b=0;

??????? this.c=0;

??? }

??? Triangle(double a,double b,double c){

??????? this.a=a;

??????? this.b=b;

??????? this.c=c;

??? }

??? public String toString(){

??????? return "三角形:邊長分別為"+a+","+b+","+c;

??? }

??? public double area() {

??????? double s=(a+b+c)/2;

??????? return Math.sqrt(s*(s-a)*(s-b)*(s-c));

??? }

??? public double perimeter() {

??????? return a+b+c;

??? }

}

?

?

(3)結果截圖

題目1. 接口

?

?

?

題目2. 繼承

?

?

?

?

?

?

?

四、實驗收獲與體會:

1、熟悉Java類的建立與使用。

2、掌握類的概念、類的定義格式、類與結構的關系、類的成員屬性和類的封裝性;

3、理解類的成員的訪問控制的含義,公有、私有和保護成員的區別;

4、學會通過建立類及對象,用類的成員函數和對象訪問類的成員;

5、學會利用建立類的構造函數,完成類的成員的初始化工作;

6、熟悉類的繼承、多態與動態綁定技術。

???

?

?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的《Java程序设计》实验报告——Java的接口与继承的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。