`
悲剧了
  • 浏览: 144335 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

thinking in java 读书笔记(四)

阅读更多
第五章
    作者真的按照他书的,每章都提出问题,并且在后面围绕这个思考,否则java与面向对象本身又有什么意义(不能很好的解甚至优雅的解决一些问题)
引用

那个库的用户(客户程序员)必须能依赖自己使用的那一部分,并知道一旦新版本的库出台,自己不需要改写代码。而与此相反,库的创建者必须能自由地进行修改与改进,同时保
证客户程序员代码不会受到那些变动的影响


   我们编写的软件模块也应该能达到这样的要求,虽然为了达到这个,jdk在后面的版本里面也发生了一些问题

  不过着章是从小范围,类级别访问权限来讨论怎么控制,讲述的包的规则,类的几种访问权限方式,很基础的规则。

5.3 接口与实现
  这里说到接口与实现,完全跟interface没关系,只是论述控制访问权限是提供操作的方式是一个接口,而不是那个接口。作者提到把提供的公共的东西写在前面,可以明确阅读到提供的接口,阅读到是实现细节(private),那么就可以停止不读了。这和像c++,public写一堆,protected写一堆。但如果要只读public就行了,貌似本身就是个难道。

总结:
    写一个类不是那么随意,如果你只是想写一个类,那就算了,叫设计一个类可能更好听,更有感觉要做好它。类的访问权限,类的名字及包都是需要注意的,写的类是提供给别人用,完成一定的功能,并且能有很好的弹性,内部改变不影响使用者,而且自己也有更大的自由度来修改类的内部那些外部不可访问的成员与方法。
还是感觉e文和中文的转换问题,有些时候真的读着很不爽,这不是逼我在读一遍e文,这本书还是传说翻译的相当棒的,那些翻译的不棒的那读着岂不是很恼火。
再回溯到作者开始提到的那个问题,perfect。



第六章
作者提出问题:
  Java 引人注目的一项特性是代码的重复使用或者再生。但最具革命意义的是,除代码的复制和修改以外,我们还能做多得多的其他事情



   在衍生类构建器中,对基础类构建器的调用是必须做的第一件事情,编译器会强迫我们在衍生类构建器的主体中首先设置对基础类构建器的调用。这意味
着在它之前不能出现任何东西

   那么没有提供默认的构造方法,编译器无法帮助我们在里面天剑super(),就需要我们显示的调用。
   若想明确地清除什么,请制作自己的清除方法,而且不要依赖finalize()

   讨论了合成还是继承的问题,effective java里面好像提到能用合成最好合成,如非必要的话,不然复杂的结构让人不好控制。
作者提出这样判断:
但只要记住经常问自己“我真的需要上溯造型吗”,对于合成还是继承的选
择就不应该是个太大的问题


final使用的详细分析:
数据--编译器 运行期
(1) 编译期常数,它永远不会改变
(2) 在运行期初始化的一个值,我们不希望它发生变化
编译器期间是常数的final static要大写

final方法
上锁避免继承覆盖它
增加效率,编译器可以直接优化它
私有方法不需要,编译器自动进行

final类
将类定义成final 后,结果只是禁止进行继承——没有更多的限制
以一个final 类中的所有方法都默认为final。因为此时再也无法覆盖它们。所
以与我们将一个方法明确声明为final 一样,编译器此时有相同的效率选择。

6.9初始化和类装载
设计到类,加载进来时候:
先初始父类的static数据,然后初始化自己的static
设计到实例化:
先对父类的成员初始化,再调用父类的构造方法,在子类成员初始化,调用子类对应的构造方法
分享到:
评论

相关推荐

    Thinking in Java读书笔记

    ### Thinking in Java 读书笔记知识点总结 #### 一、万事万物皆对象 1. **对象存储位置** - **寄存器**:程序无法直接控制。 - **栈(Stack)**:存储基本类型数据和对象引用,但对象本身不在此处。 - **堆(Heap)...

    王者归来之Thinking in java读书笔记

    《王者归来之Thinking in Java读书笔记》是对Bruce Eckel的经典之作《Thinking in Java》第四版的深度学习与总结。这本书是Java程序员的必备参考书,它深入浅出地阐述了Java语言的核心概念和技术,旨在帮助读者理解...

    thinking in java读书笔记

    ### Thinking in Java 读书笔记知识点总结 #### 一、构造器与方法重载 1. **构造器的特点**: - 构造器不返回任何值,与返回`void`不同。 - 当未在类中声明构造器时,编译器会自动生成一个默认的无参构造器。 - ...

    thinking in java 读书笔记(五)

    这篇读书笔记主要聚焦在第五部分的内容,可能涵盖了类、对象、继承、多态等关键主题。由于没有具体的描述内容,我将根据《Thinking in Java》第五部分的一般性知识点进行阐述。 1. **类与对象**:在Java中,类是...

    Thinking in java读书笔记.docx

    《Thinking in Java》是Bruce Eckel的经典之作,这本书深入探讨了Java编程的各个方面。以下是根据提供的部分内容提炼出的一些核心知识点: 1. **访问修饰符**: - `public`:公共访问修饰符,允许所有类访问。 - ...

    thinking in java读书笔记(2)

    四、 final 关键字的使用 `final` 关键字是 Java 中的一个保留字,用于修饰变量、方法和类。`final` 关键字的使用有以下几点: 1. 当一个变量被声明为 `final` 时,该变量的值不能被改变。 2. 当一个方法被声明为 ...

    读书笔记:Thinking in Java (Java 编程思想).zip

    读书笔记:Thinking in Java (Java 编程思想)

    《Thinking+in+Java》读书笔记共38页.pd

    总之,《Thinking in Java》的读书笔记结合了广泛的Java知识和实践应用,从基础知识到高级主题,从理论到实践,为学习和提升Java编程技能提供了全面的资源。无论是对初学者还是经验丰富的开发者,这都是一个宝贵的...

    java基础补足和thinking In Java学习.rar

    《Java学习笔记》 此书的特点在于里面有很多作者对Java语言的独有的理解与讲解,这些内容往往也是所有Java语言初学者迷惑的地方。称之为超简明入门书籍也不为过。 《Java核心技术:卷1基础知识》 这系列...

    JAVA 编程思想 思维导图Thinking_in_Java_MindMapping-master

    然后用Mindjet Mindmanager做了读书笔记,跟大家分享一下~ 1. 这个思维导图的读书笔记没有涵盖书中的所有知识点,但是作为框架和读书的思路比较清晰。 2. 思维导图中有很多代码在note中,没有贴到博客中。 3. 思维...

    TIJ4Reusing Classes

    thinking in java 4 Reusing Classes 读书笔记

    BookReading:读书笔记

    在《BookReading》的笔记中,你会看到对《Thinking in Java》这本书的解读,这本书是Bruce Eckel的经典之作,详细介绍了Java的基础知识和高级特性。你将了解到如何创建和使用类,如何处理异常,以及如何进行多线程...

    java软件笔试题-MyNotebook:我大学时期的笔记本

    java软件笔试题 my notebook 我的笔记本,大部分是在大二大三的时候写的笔记,对于已经毕业的来说可能比较基础甚至naive。...7:读书笔记 thinking in java effective java Android开发艺术探索 Android插件化开发指南

    j_bc_bj.rar_Java编程_Java_

    《java编程思想读书笔记.doc》可能是一个详细记录了读者在阅读经典著作《Thinking in Java》时的心得体会和重要知识点总结。这本书深入浅出地介绍了Java的核心概念,包括面向对象编程的基础,如类、对象、封装、继承...

Global site tag (gtag.js) - Google Analytics