Java程式設計思想第四版第六章練習
阿新 • • 發佈:2018-12-25
練習1:在某個包中建立一個類,在這個類所處的包的外部建立該類的一個例項。
package exercise6;
import Exercise5.Exercise5_22;
public class Exercise6_1 {
public static void main(String[] args) {
new Exercise5_22();
}
}
練習2:將本節中的程式碼片段改寫為完整的程式,並校驗實際所發生的衝突。
練習3:建立兩個包:debug和debugoff,他們都包含一個相同的類,該類有一個debug()方法,第一個版本顯示傳送給控制檯的String引數,而第二版本什麼也不做,使用靜態import語句將該類匯入到一個測試程式中,並示範條件編譯效果。
package debug;
public class E_Debug {
public static void debug(String s) {
System.out.println(s);
}
}
package debugoff;
public class E_Debug {
public static void debug(String s) {
}
}
package exercise6;
import static debug.E_Debug.*;
public class Exercise6_3 {
public static void main(String[] args) {
debug("Debug Version");
}
}
練習4:展示protected方法具有包訪問許可權,但是它仍舊不是public的。
練習5:建立一個帶有public,private,protected和包訪問許可權域以及方法成員的類。建立一個該類的一個物件,看看在你試圖呼叫所有類成員時,會得到什麼型別的編譯資訊。請注意,處於同一個目錄中的所有類都是預設包的一部分
練習6:建立一個帶有protected資料的類,運用在第一個類中處理protected資料的方法在相同的檔案中建立第二個類
public class Exercise6_6 {
public static void main(String[] args) {
WithProtected wp = new WithProtected();
wp.i =1;
System.out.println(wp.i);
}
}
class WithProtected{
protected int i;
}
練習7:根據描述access和Widget的程式碼片段建立類庫,在某個不屬於access類庫的類中建立一個Widget例項
練習8:效仿例項Lunch.java的形式,建立一個名為ConnectionManager的類,該類管理一個元素為Connection物件的固定陣列。客戶端程式設計師不能直接建立Connection物件,而只能通過ConnectionManager中的某個static方法來獲取他們。當ConnectionManager之中不再有物件時,它會返回null引用。在main()之中檢測這些類。
public class Exercise6_8 {
public static void main(String[] args) {
Connection c = ConnectionManager.getConnections();
while(c!=null) {
System.out.println(c);
c = ConnectionManager.getConnections();
}
}
}
class ConnectionManager{
public static Connection[] c = new Connection[5] ;
static int l = c.length;
static {
for (int i = 0; i < c.length; i++) {
c[i] = Connection.getConnection();
}
}
public static Connection getConnections() {
if(l>0) {
l--;
return c[l];
}else {
return null;
}
}
}
class Connection{
static Connection connection = new Connection();
private Connection(){
}
public static Connection getConnection() {
return connection;
}
}
練習9:在access/local目錄下編寫以下檔案(假定access/local目錄在你的CLASSPATH中):