標籤:linu window structure oid 如何 控制台 演算法 ESS 實驗報告
java eclipse 作業代寫、代做eclipse實驗
《java程式設計》課程實驗報告
實驗四 繼承與多態
一、實驗目的及要求
1、瞭解如何使用類及其成員的修飾符,掌握方法的繼承、重載和覆蓋。
2、掌握類的繼承關係和派生方法。
3、掌握多態的概念與使用。
4、掌握介面的定義與使用。
二、實驗內容
(一)類的繼承性練習
1.進一步理解繼承的含義
新類可從現有的類中產生,並保留現有類的成員變數和方法並可根據需要對它們加以修改。新類還可添加新的變數和方法。這種現象就稱為類的繼承。
當建立一個新類時,不必寫出全部成員變數和成員方法。只要簡單地聲明這個類是從一個已定義的類繼承下來的,就可以引用被繼承類的全部成員。被繼承的類稱為父類或超類(superclass),這個新類稱為子類。
Java 提供了一個龐大的類庫讓開發人員繼承和使用。設計這些類是出於公用的目的,因此,很少有某個類恰恰滿足你的需要。你必須設計自己的能處理實際問題的類,如果你設計的這個類僅僅實現了繼承,則和父類毫無兩樣。所以,通常要對子類進行擴充,即添加新的屬性和方法。這使得子類要比父類大,但更具特殊性,代表著一組更具體的對象。繼承的意義就在於此。
2.編寫兩個程式檔案KY4_1.java和KY4_2.java,實作類別的繼承。
3.KY4_1.java的代碼如下:
public class KY4_1
{
protected String xm; //姓名
protected int xh; //學號
void setdata(String m,int h) //該方法為姓名和學號賦初始值
{
xm =m;
xh = h;
}
public void print() //輸出學生的姓名和學號
{
System.out.println(xm+", "+xh);
}
}
4.編譯 KY4_1.java,產生類檔案 KY4_1.class。注意:暫時不運行程式KY4_2.class。
5.編寫一個程式檔案KY4_2.java。程式功能如下:子類KY4_2繼承父類 KY4_1,其不僅具有父類的成員變數 xm(姓名)、xh(學號),還定義了新的成員變數 xy(學院)、xi(系)。在子類KY4_2中重寫了父類的方法print(),在該方法中不僅輸出學生的姓名和學號,而且還輸出學生的學院和系。另外,在子類KY4_2中還定義了一個主方法main。首先,在主方法中建立一個父類 KY4_1的對象f,設定f的姓名為你自己的名字,學號為"12321",並且調用print()方法輸出對象f的姓名和學號。接著,在主方法中建立一個子類 KY4_2的對象s,設定s的姓名為"郭娜",學號為"12345",學院為"經濟管理學院",係為"資訊管理系",並且調用print()方法輸出對象s的姓名,學號,學院和系。
6.編譯並運行程式KY4_2.java。請將KY4_2的來源程式以及運行結果寫在實驗報告中。
注意:父類 KY4_1 與子類 KY4_2要在同一檔案夾(路徑)內。
要求: 將程式的原始碼、運行結果寫在實驗報告上。
(二)掌握上轉型對象的使用,理解不同對象的上轉型對象調用同一方法可能產生不同的行為(多態)。
上轉型對象可以訪問子類繼承或隱藏的成員變數,也可以調用子類繼承的方法或子類重寫的執行個體方法(此時等價於子類對象去調用這些方法。)如果子類重寫了父類的某個執行個體方法後,對象的上轉型對象調用的這個執行個體方法一定是子類重寫的執行個體方法)。
1.編寫一個abstract類,類名為Geometry,該類有一個abstract方法。
public double area();
2.編寫Geometry的若干個子類,比如Circle子類和Rect子類。
3.編寫Student類,該類定義一個public double area(Geometry ...p)方法,該方法的參數是可變參數,即參數的個數不確定,但類型都是Geometry。該方法返回參數計算的面積之和。
4.在主類MainClass的main方法中建立一個Student對象,讓該對象調用
public double area(Geometry ...p)計算若干個矩形和若干個圓的面積之和。
Geometry.java
public abstract class Geometry{
public abstract double getArea( );
}
Rect.java
public class Rect extends Geometry {
double a,b;
Rect(double a,double b) {
this.a = a;
this.b = b;
}
【代碼1】 //重寫 getArea()方法,返回矩形面積
}
Circle.java
public class Circle extends Geometry {
double r;
Circle(double r) {
this.r = r;
}
【代碼2】 //重寫 getArea()方法,返回圓面積
}
Student.java
public class Student {
public double area(Geometry ...p) {
double sum=0;
for(int i=0;i<p.length;i++) {
sum=sum+p[i].getArea();
}
return sum;
}
}
MainClass.java
public class MainClass{
public static void main(String args[]) {
Student zhang = new Student();
double area =
zhang.area(new Rect(2,3),new Circle(5.2),new Circle(12));
System.out.printf("2個圓和1個矩形圖形的面積和:\n%10.3f",area);
}
}
實驗內容要求:將【代碼】部分替換為java程式碼,成為完整的程式並將程式的原始碼、運行結果寫在實驗報告上。
(三)面向介面編程
介面回調是多態的另一種體現。介面回調是指可以把使用某一介面的類建立的對象的引用賦給該介面變數,那麼該介面變數就可以調用被類實現的介面中的方法,當介面變數調用被類實現的介面中的方法時,就是通知相應的對象調用介面的方法。所謂面向介面編程,是指當設計某個重要的類時,不讓該類面向具體的類,而是面向介面。即設計類中的重要資料是介面聲明的變數,而不是具體類聲明的對象。
天氣可能出現不同的狀態,要求用不同的介面封裝天氣的狀態。
具體要求如下:
?1.編寫介面WeatherState,該介面有一個名字為void showState()的方法。
?2.編寫Weather類,該類中有一個WeatherState聲明的變數state。另外,該類有一個show()方法,在該方法中讓介面state回調showState()的方法。
?3.編寫若干個實現WeatherState介面的類,負責刻畫天氣的各種狀態。
?4.編寫主類,在主類中進行天氣預報。
WeatherState.java
public interface WeatherState { //介面
public void showState();
}
Weather.java
public class Weather {
WeatherState state;
public void show() {
state.showState();
}
public void setState(WeatherState s) {
state = s;
}
}
WeatherForecast.java
public class WeatherForecast { //主類
public static void main(String args[]) {
Weather weatherBeijing =new Weather();
System.out.print("\n今天白天:");
weatherBeijing.setState(new CloudyDayState());
weatherBeijing.show();
System.out.print("\n今天夜間:");
weatherBeijing.setState(new LightRainState());
weatherBeijing.show();
System.out.print("轉:");
weatherBeijing.setState(new HeavyRainState());
weatherBeijing.show();
System.out.print("\n明天白天:");
weatherBeijing.setState(new LightRainState());
weatherBeijing.show();
System.out.print("\n明天夜間:");
weatherBeijing.setState(new CloudyLittleState());
weatherBeijing.show();
}
}
CloudyLittleState.java
public class CloudyLittleState implements WeatherState {
public void showState() {
System.out.print("少雲,有時晴.");
}
}
CloudyDayState.java
public class CloudyDayState implements WeatherState {
【代碼1】 //重寫public void showState()
}
HeavyRainState.java
public class HeavyRainState implements WeatherState{
【代碼2】 //重寫public void showState()
}
LightRainState.java
public class LightRainState implements WeatherState {
【代碼3】 //重寫public void showState()方法
}
實驗內容要求:將【代碼】部分替換為java程式碼。將程式的原始碼、運行結果寫在實驗報告上。
三、實驗裝置與環境
windows7及以上系統,安裝eclipse+JDK
四、實驗過程和結果
五、實驗總結
http://www.6daixie.com/contents/9/1337.html
我們的方向領域:window編程 數值演算法 AI人工智慧 金融統計 計量分析 大資料 網路編程 WEB編程 通訊編程 遊戲編程多媒體linux 外掛編程 程式API影像處理 嵌入式/單片機 資料庫編程 控制台 進程與線程 網路安全 組合語言 硬體編程 軟體設計 工程標準規等。其中代寫代做程式設計語言或工具包括但不限於以下範圍:
C/C++/C#代寫
Java代寫
IT代寫
Python代寫
輔導編程作業
Matlab代寫
Haskell代寫
Processing代寫
Linux環境搭建
Rust代寫
Data Structure Assginment 資料結構代寫
MIPS代寫
Machine Learning 作業 代寫
Oracle/SQL/PostgreSQL/Pig 資料庫代寫/代做/輔導
Web開發、網站開發、網站作業
ASP.NET網站開發
Finance Insurace Statistics統計、迴歸、迭代
Prolog代寫
Computer Computational method代做
因為專業,所以值得信賴。如有需要,請加QQ:99515681 或郵箱:[email protected]
:codinghelp
java eclipse 作業代寫、代做eclipse實驗