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 = ;
    } class ProcessData {
    public void changeData(Data data) {
    data.d = ; // 类内处理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 = ;
    static Connection[] conns = new Connection[count]; //静态代码块, 初始化成员变量
    static {
    for(int i=; 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=; i<; 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 = ; private Connection(){
    Connection.count ++;
    }
    public static Connection makeConnection(){
    return new Connection();
    }
    public static int getCount(){
    return Connection.count -- ;
    } }

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

java编程思想第四版第六章习题的更多相关文章

  1. java编程思想第四版第六章总结

    1. 代码重构 为什么f要代码重构 第一次代码不一定是完美的, 总会发现更优雅的写法. 代码重构需要考虑的问题 类库的修改不会破坏客户端程序员的代码. 源程序方便扩展和优化 2. 包 创建一个独一无二 ...

  2. java编程思想 第四版 第六章 个人练习

    欢迎加群:239063848 进群须知:本群仅用于技术分享与交流.问题公布与解答 禁止闲聊.非诚勿扰 练习1:(1)在某个包中创建一个类,在这个类所处的包的外部创建该类的一个实例. import mi ...

  3. java编程思想第四版第十一章习题

    第一题 package net.mindview.holding.test1; import java.util.ArrayList; import java.util.List; /** * 沙鼠 ...

  4. java编程思想第四版第五章习题

    创建一个类, 它包含一个未初始化的String引用.验证该引用被Java初始化成了null package net.mindview.initialization; public class Test ...

  5. java编程思想第四版第七章习题

    (略) (略) (略) (略) 创建两个带有默认构造器(空参数列表)的类A和类B.从A中继承产生一个名为C的新,并在C内创建一个B类的成员.不要给C编写构造器.创建一个C类的对象并观察其结果. pac ...

  6. Java编程思想第四版*第七章*个人练习

    欢迎加群:239063848 成团的笔记:该组仅用于技术共享和交流,问题和答案公布 潘基聊天.禁止广告.禁止招聘-- 练习1:(2)创建一个简单的类.第二个类中,将一个引用定义为第一个类的对象.运用惰 ...

  7. java编程思想第四版第十三章字符串 习题

    fas 第二题 package net.mindview.strings; import java.util.ArrayList; import java.util.List; /** * 无限循环 ...

  8. java编程思想第四版第十三章字符串 总结

    1. String和StringBulider的使用 通过书中介绍, 我们得知如下结论: 当使用+连接符将字符串进行拼接的时候, 编译器会进行自动优化为使用StringBuilder连接字符串. 当在 ...

  9. java编程思想第四版第十一章总结

    1. 容器类被分为两类:Collection和Map Collection是一个接口:包括: List接口: ArrayList:按照被插入顺序保存元素, 查询快, 增删改慢 LinkedList:按 ...

随机推荐

  1. 【转】CString,string,char*综合比较

    (一)  概述 1.string和CString均是字符串模a板类: 2.string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中: 3.CString(typedef CString ...

  2. matlab获取文件夹中的所有文件名(dir)

    当前目录中包含文件及目录如下: abc111.txt abc112.txt abc113.txt a\ (文件夹) CODE: >> dir('test')   %目录 .         ...

  3. 树莓派用U盘安装系统

    * 需要使用Raspbian / Raspbian Lite或更高版本的2017-04-10版本 *不会SD卡装系统? 1.  先用装好Raspbian系统的SD卡启动 在命令行输入    echo ...

  4. 康盛(discuz )牛逼的PHP加解密算法函数

    1.前言 康盛的 authcode 函数很牛叉,是一个具有有效期的加解密函数,同一个字符每次加密所产生的结果都是不一致的,并且可以自定义设置过期时间. 设计原理:authcode 是使用异或运算进行加 ...

  5. JavaScript中的类继承

    JavaScript是一个无class的面向对象语言,它使用原型继承而非类继承.这会让那些使用传统面向对象语言如C++和Java的程序员们感到困惑.正如我们所看到的,JavaScript的原型继承比类 ...

  6. [DeeplearningAI笔记]神经网络与深度学习人工智能行业大师访谈

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 吴恩达采访Geoffrey Hinton NG:前几十年,你就已经发明了这么多神经网络和深度学习相关的概念,我其实很好奇,在这么多你发明的东西中 ...

  7. gitlab 操作指南

    重置密码 https://docs.gitlab.com/ce/security/reset_root_password.html gitlab 一键安装 https://docs.gitlab.co ...

  8. 汇编之EBP的认识。

    说到EBP就不能忽略了ESP.ESP是一个指针,始终执行堆栈的栈顶.而EBP就是那个所谓的堆栈了. 先看几个例子吧. push ebp ; 把ebp,堆栈的0地址压入堆栈 mov ebp,esp ; ...

  9. offset / scroll / client Left / Top

    1.offsetHeight / Width (只读) offsetHeight:表示该元素在垂直方向占用的空间大小,包含元素的高度+上边框高度+下边框高度 offsetWidth:表示该元素在水平方 ...

  10. I can do it

    If it doesn't challange you ,it won't change you.