zoukankan      html  css  js  c++  java
  • 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充分体现了面向对象的思想。 需要多思考

  • 相关阅读:
    dotnet 控制台读写 Sqlite 提示 no such table 找不到文件
    dotnet 控制台读写 Sqlite 提示 no such table 找不到文件
    dotnet 控制台 Hangfire 后台定时任务
    dotnet 控制台 Hangfire 后台定时任务
    dotnet 获取指定进程的输入命令行
    dotnet 获取指定进程的输入命令行
    PHP sqrt() 函数
    PHP sinh() 函数
    PHP sin() 函数
    PHP round() 函数
  • 原文地址:https://www.cnblogs.com/ITPower/p/8521412.html
Copyright © 2011-2022 走看看