一、簡答題(每題5分,共計40分)
1.什麼是類?什麼是物件?類與物件的關係是什麼?
類本質上就是分類的意思,也就是具有相同共性的一類事物的抽象描述。2.請寫出類、屬性、行為的定義格式,以及引用和物件的定義格式。類就是一種使用者可以自定義的引用資料型別,用於包裝描述屬性的成員變數,和用於描述行為的成員方法,換句話說,類可以用於描述多個不同型別的資料。
類是一種抽象的概念,用於描述物件建立的模板,而物件是客觀存在的實體,本質上就是記憶體空間中的一塊區域,物件的資料結構取決於類。
class 類名
} 類型別 物件名 = new 類型別();
3.簡述方法過載的概念、體現形式以及作用。
當同乙個類中方法名相同,引數列表不同的方法之間 構成過載關係。 引數列表的體現形式有:引數個數的不同、引數型別不同、引數順序不同。4.this關鍵字的基本概念和常見使用方式是什麼?方法的過載與返回值型別和形參變數名無關,但是建議盡量相同。
作用: 對於呼叫者來說,只需要記憶乙個方法名就可以實現所有形式的呼叫。
在構造方法中,this代表當前正在構造的物件。5.基本資料型別和引用資料型別分別作為方法引數的效果是什麼?。在普通方法中,this代表當前正在呼叫的物件,也就是呼叫物件。
當形參名/區域性變數和屬性同名時,需要使用this關鍵字通過.來明確表示屬性變數,從而提高**的可讀性和正確性,也就是用於區分同名的成員變數和形參以及區域性變數。
當基本資料型別作為引數傳遞時,傳遞資料內容本身,因此形參改變不會影響到實參;6.簡述封裝的實現流程。當引用資料型別作為引數傳遞時,傳遞的是引用記錄的位址,因此形參指向的內容發生改變時,會直接對實參產生影響。
當引用資料型別作為引數傳遞後,若形參改變了指向再去改內容,則對實參無影響。。
a.私有化成員變數,使用private關鍵字修飾;7.final關鍵字修飾類、方法以及屬性各自的效果是什麼?b.提供公有的get成員變數和set成員變數方法,並在方法體中進行合理性的判斷;
c.在構造方法中呼叫set成員變數的方法來確保合理性;
final修飾的類表示該類不能被繼承。8.簡述多型的效果。final修飾的方法不可以被重寫,但可以被繼承。
final修飾的成員變數必須被初始化,並且只能初始化一次。
a.父類引用只能訪問父類中的屬性和方法。二、程式設計題(13題每題10分,45題15分,共計60分)b.父類引用不能直接訪問子類中的屬性和方法。
c.父類引用若想訪問子類中的屬性和方法,則進行強制型別轉換,轉換為子類變數呼叫
d.父類引用呼叫非靜態的重寫方法時,則呼叫子類中的版本;
呼叫靜態的重寫方法時,則呼叫父類中的版本。
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物件導向
理解物件導向 物件導向是相對面向過程而言 物件導向和面向過程都是一種思想 面向過程 強調的是功能行為 物件導向 將功能封裝進物件,強調具備了功能的兌現 物件導向是局域面向過程的 物件用計算機語言對問題域中事物的描述,物件通過屬性和方法來分別對應事物所具有的靜態屬性和動態屬性 物件導向的特點 是一種復...