• java编程思想第四版第六章习题


    1. (略)
    2. (略)
    3. 创建两个包:debug和debugoff,他们都包含一个相同的类,该类有一个debug()方法,第一个版本显示发送给控制台的String参数,而第二版本什么也不做,使用静态import语句将该类导入到一个测试程序中,并示范条件编译效果。

      package net.mindview.access;
      
      public class Test3 {
          public static void main(String[] args) {
              net.mindview.access.debug.Test3 t = new net.mindview.access.debug.Test3();
              net.mindview.access.debugoff.Test3 t2 = new net.mindview.access.debugoff.Test3();
          }
      }

      在一个类中导入名字相同,不同包下的其他类, 需要带上报名, 否则会编译不通过.

    4. (略)
    5. (略)
    6. 创建一个带有protected数据的类,运用在第一个类中处理protected数据的方法在相同的文件中创建第二个类。

      /**
       * 类内处理Protected数据
       * <p/>
       * Created by wang on 15/8/4.
       */
      class Data {
          protected int d = 11;
      }
      
      class ProcessData {
          public void changeData(Data data) {
              data.d = 22; // 类内处理protected数据
          }
      }
      
      public class ProtecedData {
      
          public static void main(String[] strs) {
              Data data = new Data();
              System.out.println(data.d);
              new ProcessData().changeData(data);
              System.out.println(data.d);
          }
      }
      /**
       * Output:
       11
       22
       */
    7. (略)
    8. 效仿实例Lunch.java的形式,创建一个名为ConnectionManager的类,该类管理一个元素为Connection对象的固定数组。客户端程序员不能直接创建Connection对象,而只能通过ConnectionManager中的某个static方法来获取他们。当ConnectionManager之中不再有对象时,它会返回null引用。在main()之中检测这些类。

      package net.mindview.access;
      
      public class ConnectionManager {
          static int count = 5;
          static Connection[] conns = new Connection[count];
          
          //静态代码块, 初始化成员变量
          static {
              for(int i=0; i<conns.length; i++){
                  conns[i] = Connection.makeConnection();
              }
          }
          
          //获取第i个连接
          public static Connection getConnection(int i){
              
              if(i < count){
                  return conns[i];
              }else{
                  return null;
              }
          }
          
          public static void main(String[] args) {
              for(int i=0; i<6; i++){
                  Connection conn = ConnectionManager.getConnection(i);
                  if(conn != null){
                      System.out.println("当前有几个连接:"+Connection.getCount());
                  } else {
                      System.out.println("null");
                  }
              }
      
          }
      
      }
      package net.mindview.access;
      
      public class Connection {
          //用来统计一共创建了多少个Connection对象
          private static int count = 0;
          
          private Connection(){
              Connection.count ++;
          }
          public static Connection makeConnection(){
              return new Connection();
          }
          public static int getCount(){
              return  Connection.count -- ;
          }
          
      }

      这个demo充分体现了面向对象的思想。 需要多思考

  • 相关阅读:
    “持咒”到底是个什么东西?再论语言和思维关系
    传说中的噪声
    电源噪声(EMI)滤波器的基本原理与应用方法
    Like a rock,like the weather man【转】
    allegro笔记
    Taxicab geometry和Euclidean geometry
    hql和sql的区别
    SpringMVC与Struts2的区别
    ExtJS 学习专题如何应用ExtJS
    编程式事务和声明式事务
  • 原文地址:https://www.cnblogs.com/ITPower/p/8521412.html
Copyright © 2020-2023  润新知