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充分体现了面向对象的思想。 需要多思考

  • 相关阅读:
    专利申请流程
    安装Fedora16与Windows7共存双系统
    rpm检查依赖性
    C++中的static函数和extern关键字
    asp.net 浏览服务器文件
    如何用批处理文件写:获取当前日期的前一天
    有一个无效 SelectedValue,因为它不在项目列表中。
    .net 4.0 检测到有潜在危险的 Request.Form 值。
    ckeditor 在C#中使用
    使用任务计划程序自动执行任务
  • 原文地址:https://www.cnblogs.com/ITPower/p/8521412.html
Copyright © 2011-2022 走看看