1. 程式人生 > >Java程式設計思想第四版第六章練習

Java程式設計思想第四版第六章練習

練習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中):