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

猜你喜欢

转载自blog.csdn.net/lelouch_j_zs/article/details/78484878
今日推荐