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. 达尔稳usb转RJ45的接口转换器(usb2.0接口)在ubuntu16.04中驱动(r8152)编译安装与使用

    淘宝买了usb转RJ45的接口转换器:https://detail.tmall.com/item.htm?id=524808012954&ali_refid=a3_430582_1006:11 ...

  2. ehcache模糊批量移除缓存

    目录 前言 实现 总结 前言 众所周知,encache是现在最流行的java开源缓存框架,配置简单,结构清晰,功能强大.通过注解@Cacheable可以快速添加方法结果到缓存.通过@CacheEvic ...

  3. 主函数特别之处:public static void main(String[] args)

    public static void main(String[] args) public class Test_java {//主函数特殊之处 public static void main(Str ...

  4. Mac 提示安装包已损坏

    mac 系统更新到 Sierra 10.12.X 版本后,从非 itunes 渠道下载的软件安装时都会报 “安装包已损坏” 的错误,这是新的系统设置的安全机制,为了解决这个问题,可以在命令行中输入命令 ...

  5. Docker之容器

    容器(Container) 容器介绍: docker是通过容器来运行业务的,就像运行一个kvm虚拟机是一样的.容器其实就是从镜像创建的一个实例. 我们可以对容器进行增删改查,容器之间也是相互隔离的.和 ...

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

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

  7. 覆盖equals()时总要覆盖hashCode()

    覆写如下: public class User{ private Integer id; private String userName; private String passWord; publi ...

  8. python3中,os.path模块下常用的用法总结

    abspath basename dirname exists getatime getctime getmtime getsize isabs isdir isfile islink ismount ...

  9. Python之Django rest_Framework(3)

    补充:  为什么要前后端分离:       a.因为前端它有自己框架,这样它的效率就非常高       b.不做前后端分离,公司如果既有客户端,又有app这种情况下你就的写两遍 django rest ...

  10. 有标号DAG计数 [容斥原理 子集反演 组合数学 fft]

    有标号DAG计数 题目在COGS上 [HZOI 2015]有标号的DAG计数 I [HZOI 2015] 有标号的DAG计数 II [HZOI 2015]有标号的DAG计数 III I 求n个点的DA ...