java物件導向周測帶答案

2021-08-28 13:28:10 字數 4089 閱讀 9765

一、簡答題(每題5分,共計40分)

1.什麼是類?什麼是物件?類與物件的關係是什麼?

類本質上就是分類的意思,也就是具有相同共性的一類事物的抽象描述。

類就是一種使用者可以自定義的引用資料型別,用於包裝描述屬性的成員變數,和用於描述行為的成員方法,換句話說,類可以用於描述多個不同型別的資料。

類是一種抽象的概念,用於描述物件建立的模板,而物件是客觀存在的實體,本質上就是記憶體空間中的一塊區域,物件的資料結構取決於類。

2.請寫出類、屬性、行為的定義格式,以及引用和物件的定義格式。

class 類名

} 類型別 物件名 = new 類型別();

3.簡述方法過載的概念、體現形式以及作用。

當同乙個類中方法名相同,引數列表不同的方法之間 構成過載關係。 引數列表的體現形式有:引數個數的不同、引數型別不同、引數順序不同。

方法的過載與返回值型別和形參變數名無關,但是建議盡量相同。

作用: 對於呼叫者來說,只需要記憶乙個方法名就可以實現所有形式的呼叫。

4.this關鍵字的基本概念和常見使用方式是什麼?

在構造方法中,this代表當前正在構造的物件。

在普通方法中,this代表當前正在呼叫的物件,也就是呼叫物件。

當形參名/區域性變數和屬性同名時,需要使用this關鍵字通過.來明確表示屬性變數,從而提高**的可讀性和正確性,也就是用於區分同名的成員變數和形參以及區域性變數。

5.基本資料型別和引用資料型別分別作為方法引數的效果是什麼?。

當基本資料型別作為引數傳遞時,傳遞資料內容本身,因此形參改變不會影響到實參;

當引用資料型別作為引數傳遞時,傳遞的是引用記錄的位址,因此形參指向的內容發生改變時,會直接對實參產生影響。

當引用資料型別作為引數傳遞後,若形參改變了指向再去改內容,則對實參無影響。。

6.簡述封裝的實現流程。

a.私有化成員變數,使用private關鍵字修飾;

b.提供公有的get成員變數和set成員變數方法,並在方法體中進行合理性的判斷;

c.在構造方法中呼叫set成員變數的方法來確保合理性;

7.final關鍵字修飾類、方法以及屬性各自的效果是什麼?

final修飾的類表示該類不能被繼承。

final修飾的方法不可以被重寫,但可以被繼承。

final修飾的成員變數必須被初始化,並且只能初始化一次。

8.簡述多型的效果。

a.父類引用只能訪問父類中的屬性和方法。

b.父類引用不能直接訪問子類中的屬性和方法。

c.父類引用若想訪問子類中的屬性和方法,則進行強制型別轉換,轉換為子類變數呼叫

d.父類引用呼叫非靜態的重寫方法時,則呼叫子類中的版本;

呼叫靜態的重寫方法時,則呼叫父類中的版本。

二、程式設計題(13題每題10分,45題15分,共計60分)

1.自定義方法將一整數逆序後放入一陣列中(要求遞迴實現)如:1234 變為 。

public void no1(int num,int arr,int i) else 

}

2.程式設計實現兩種形式(餓漢式和懶漢式)的單例模式。

//懶漢式單例模式

public class text

//開放乙個公有方法,判斷是否已經存在例項,有返回,沒有新建乙個在返回

public static text getinstance()else

system.out.println("方法呼叫結束,返回單例");

return tt; }}

//餓漢式單例模式

public class text2

//開放乙個公有方法,判斷是否已經存在例項,有返回,沒有新建乙個在返回

public static text2 getinstance()

}

3.程式設計實現以下需求:

自定義狗類,屬性有:名字、牙齒數量,行為有:吃食物、看家。

自定義貓類,屬性有:名字、顏色,行為有:吃食物、抓老鼠。

自定義測試類,自定義成員方法實現既能列印狗又能列印貓的所有特徵,在main()方法中呼叫即可。

package text;

public class an

public an(string name)

public string getname()

public void setname(string name)

public void show()

}package text;

public class cat extends an

public string getcolor()

public void setcolor(string color)

public void show()

public void work()

}package text;

public class dog extends an

public int getya()

public void setya(int ya)

public void show()

public void work()

}package text;

public class text else if (an instanceof dog)

} public static void main(string args)

}

4.程式設計實現以下需求:

自定義accout類實現封裝,特徵有:賬戶餘額,要求提供計算利息兵返回的抽象方法。

自定義fixedaccount類繼承account類並重寫抽象方法,在main()方法中使用多型方式構造物件並設定賬戶餘額為2000,最後計算利息並列印出來。

package t;ext

public abstract class accout

public accout(int money)

public int getmoney()

public void setmoney(int money)

public abstract double getli();

}package text;

public class fixedaccount extends accout

@override

public double getli()

public static void main(string args)

}

5.程式設計實現以下需求:

自定義testinte***cea介面,提供乙個列印1~20之間所有奇數的抽象方法。

自定義testinte***ceb介面,提供乙個列印1~20之間所有偶數的抽象方法。

自定義subab類實現上述兩個介面並重寫抽象方法,在main方法中使用多型語法 格式建立物件並呼叫兩個方法實現列印。

package text;

public inte***ce a

package text;

public inte***ce b

package text;

public class ab

public static void text1(b b)

public static void main(string args) }}

});ab.text1(new b() }}

});}}

JAVA 物件導向

this關鍵字只能在方法內部使用,表示 呼叫方法的那個物件 的引用。this 用於建構函式之間進行相互呼叫。語句只能定義在建構函式的第一行。static 靜態 使用注意事項 1.靜態方法只能訪問靜態成員。非靜態方法可以訪問靜態成員。2.靜態方法中不可以定義this,super關鍵字。因為靜態優先於物...

JAVA 物件導向

定義類的格式 class student 例 public int addnumber int a,int b 注 方法名中的引數int a,int b為區域性變數 類方法中的一類特殊方法 構造方法。構造方法是當用類生成物件時,系統在生成物件的過程中利用的方法。注意 構造方法在生成物件的時候會被呼叫...

Java物件導向

理解物件導向 物件導向是相對面向過程而言 物件導向和面向過程都是一種思想 面向過程 強調的是功能行為 物件導向 將功能封裝進物件,強調具備了功能的兌現 物件導向是局域面向過程的 物件用計算機語言對問題域中事物的描述,物件通過屬性和方法來分別對應事物所具有的靜態屬性和動態屬性 物件導向的特點 是一種復...