`
lzlalpha
  • 浏览: 36610 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

Think In Java之面向对象(4-8章)

阅读更多

1. 在构造器中初始化类的字段。构造器不允许返回任何值,这与void不同。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

2. 每一个重载方法必须有一个独一无二的参数类型列表。返回值不同不会引起方法的重载。

3. 重载方法时,如果形参的类型比实参的类型小,则会进行提升。Char如果找不到合适的方法,则会提升到int

4. this关键字只能在方法内部用,表示“调用这个方法的对象”的引用。如果在方法内部调用同一个类的方法,则不必用this

5. 除了在另一个构造器中,其他方法不允许调用构造器。

6. 在构造器中调用另一个带参构造器。如:Flower(){this(24,”aaa”);}

7. 不要过多的使用finalize()函数。而且一定不能调用它。

8. c++在堆上分配空间是查找可用空间之后再分配,java的堆分配内存是分配下一个可用的空间而不进行查找,并有垃圾回收器的配合。这种方式如同c++在堆栈上分配内存。

9. 垃圾回收机制。停止-复制:查找所有引用的活的对象,并从一个堆复制到另一个新的堆,然后把原来堆中的垃圾清除。标记-清除:标记所有活的对象,并把死的对象清除。两者都在程序停止的情况下运行。Java虚拟机可以自适应的在两种方式之间切换。

10. 在类里定义一个对象的引用,而不对其赋值,此引用就会获得一个特殊的值null

11. 类的初始化顺序:父类的静态字段的初始化,静态代码段的初始化,子类静态字段和代码段的初始化,然后是父类和子类的非静态字段和代码段的初始化(内存置二进制0),父类构造函数的初始化,子类构造函数的初始化。

12. 在声明数组时不允许设置大小。而在用new分配数组空间时可以。如:int [] array = new int[20];

13. 可以用private的构造器来限制new一个对象。

14. 类可以是包访问权限(什么都不加)public的访问权限。

-继承

15. 在子类中仍然可以用父类中重载过的方法。

16. 代码的复用。组合:把其他的类的对象嵌入到新的类中,以实现更多的功能。是has-a的实现,如:车子包含轮子。继承:在其他类的基础上增加新的功能。是is-a的实现,如:车子是交通工具。

17. 子类是父类的一种类型。

18. final字段可以是空的,但是必须在使用之前赋值。可以将实参定义为final

19. 将方法声明为final可以提高效率,因为编译器看到final方法,则谨慎的将该函数转为内联函数。

20. 类在创建对象或是在使用其静态字段方法时加载,静态字段的加载顺序按照代码的书写顺序加载。

-多态

21. java中,除了staticfinal方法,其他的默认都是后期绑定(运行时绑定)。

22. Sharp s = new Circle();s.draw();//调用的是Circledraw()函数,因为后期绑定。

23. 基类中的方法如果是private的,则不会发生重载,也不会发生后期绑定。

24. 一个包含抽象方法的类,必须是抽象的类。否则编译器报错。

25. 构造器并不具有多态性,因为他是隐式的static方法。

26. 创建一个对象,子类构造器在构造时会递归的调用父类的构造器,父类初始化其自身字段,然后子类再依次初始化其字段。

27. 如果子类的构造方法中有调用重载方法时,则调用顺序是这样的:在申请空间置二进制0,子类调用重载的方法,调用父类的构造器,初始化字段,依次调用子类的构造器。

28. 清除对象时应该先清除子类的垃圾,然后调用父类的方法清除垃圾。

29. 编写构造器时一条有用的原则:用尽可能简单的方法使对象进入正常状态,如果可以的话,避免调用其他的方法。(或者调用final方法和private,因为他们不能被重载)

30. 运行期类型识别(RTTI)会在转型时进行检查。

-接口和内部类

31. 接口的数据成员被最先初始化。

32. 接口中的数据成员不能是空的final成员。

33. 内部类可以是privateprotect的,而普通类则不可以。

34. 内部类可以在任意的作用域创建内部类,实现了某类接口,并想返回对其的引用;想创建一个类来辅助解决方案,但又不希望这个类是公共的。

35. 在作用域内创建内部类,出了作用域便不可访问。而且只能访问作用域内的成员。

36. 要想创建匿名内部类的构造器,则简单的传递合适的参数给积累的构造器即可。

37. 在匿名内部类中调用外部的对象引用,则这个对象引用必须是final的。

38. 内部类能访问其外围类的所有成员,而不需要任何其他条件。因为普通的内部类隐式的包含了一个他外围类的引用。

39. 嵌套类是声明为static的内部类,它不能访问外围类的非static成员。它没有this

40. 内部类生成的是外围类$内部类.class的文件,如果是匿名内部类,则简单的在$后加数字.class

41. 每个内部类都能独立的继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口)的实现,对于内部类都没有影响。

42. 如果要在一个类中继承多个抽象类(而不是接口),那只能用内部类。

分享到:
评论

相关推荐

    Think-in-JAVA-4th-Edition

    ### 《Think-in-JAVA-4th-Edition》核心知识点概览 #### 一、书籍简介 《Thinking in Java》是一本由Bruce Eckel撰写的经典Java编程书籍,被誉为是学习Java的最佳参考资料之一。该书适合具有一定Java基础的学习者...

    think-in-java

    2. **面向对象编程**:类、对象、封装、继承、多态等核心概念,详细阐述了Java如何实现面向对象的编程思想。 3. **异常处理**:理解如何使用try-catch-finally语句块进行异常处理,以及不同类型的异常类。 4. **...

    think in java 练习

    《Think in Java》是 Bruce Eckel 的经典著作,它深入浅出地讲解了Java编程语言的核心概念和技术。这本书强调理解编程思想,而不仅仅是学习语法。练习题是学习过程中的重要部分,它们帮助我们巩固理论知识,提升实际...

    Think in Java3

    通过对《Think in Java 3》的学习,读者不仅可以掌握Java语言的基础知识,还能深入理解面向对象编程的思想,提升编程技能和解决问题的能力。这本书适合所有层次的Java开发者,无论你是初学者还是经验丰富的程序员,...

    think in java source code

    1. **面向对象编程基础**:书中通过丰富的例子展示了类、对象、封装、继承和多态等面向对象编程的基本概念。源码中你可以看到如何定义类,如何创建对象,以及如何使用构造函数和析构函数。 2. **数据类型与变量**:...

    Think In Java 4(完美高清中文版).

    《Think In Java 4》是Java编程领域里一本极具影响力的著作,由资深程序员 Bruce Eckel 编著。这本书以其深入浅出的讲解方式和全面的知识覆盖而闻名,被誉为Java学习者的经典读物。中文版的完美高清版本为国内读者...

    Think in java第三版代码

    7. `frogbean`、`c12`、`c02`、`c04`:这些可能是目录或文件,可能分别对应《Think in Java》中的特定章节或案例,例如`frogbean`可能与青蛙类(Frog)相关,而`c02`、`c04`可能代表第2章和第4章的代码。 通过研究...

    【高清印刷】面向对象经典用书-大象-Think in UML-谭云杰

    谭云杰老师的《Think in UML——大象》这本书结合了UML和面向对象方法,意在引导读者深入理解UML在面向对象软件设计中的应用,并且通过实例和案例的展示,使读者能够把握面向对象软件工程的精髓。 《Think in UML...

    java1think in java笔记(111)---打印 (2008-04-24 16:58:28)

    在良好的面向对象设计中,类创建者会隐藏实现细节,只暴露必要的接口给客户端程序员使用。 11. **代码结构**: - `PrintDemo`类使用了MVC(Model-View-Controller)架构的元素,如`Plot`类作为模型,`PrintDemo`的...

    java 初学入门--think in java

    《Think in Java》是一本经典的Java学习教材,由Bruce Eckel撰写,它不仅讲解了Java语言的基础知识,还深入探讨了面向对象编程的思想。以下是对《Think in Java》部分内容的精要概括: 1. **Java基础**:首先,你...

    think in java4源代码

    《Think in Java 4》是Java编程领域的一部经典之作,由Bruce Eckel撰写,它以其深入浅出的讲解方式和丰富的示例代码深受程序员喜爱。这个压缩包包含的就是这本书的全部源代码,旨在帮助读者更好地理解和实践书中所...

    Think in java 中文第四版第二部分 (非扫描,瑕疵版)

    《Think in Java 中文第四版》是学习Java编程的经典之作,由Bruce Eckel撰写,它深入浅出地讲解了Java语言的核心概念和技术。本部分主要涵盖的是书籍的第二部分,通常涉及面向对象编程的深入探讨,包括类、对象、...

    Think in JAVA 编程思想 第四版 清晰扫描版

    第四版作为该书的最新版本,包含了作者对Java语言深入的理解和丰富的编程经验,旨在帮助读者理解面向对象编程的核心理念,并提升编程技能。下面我们将深入探讨这本书中的主要知识点。 1. **面向对象编程基础**:书...

    Think in java学习笔记

    - **面向对象编程(OOP)**:Java 使用引用(reference)来操纵对象。 - **对象的创建与存储**: - 通常使用 `new` 关键字创建对象,这些对象存储在堆中。 - 对象的存储位置包括: - 寄存器:用于存储高速缓存的...

    think in java第四版练习题第三章答案

    《Think in Java》是Java编程...总的来说,第三章的练习题旨在帮助你扎实掌握Java的面向对象基础,为后续更高级的编程概念和框架的学习打下坚实的基础。通过深入理解和实践这些题目,你将在Java编程的世界中更进一步。

    think in java 4 练习题答案

    《Think in Java 4》是Java编程领域里一本经典的教程,由Bruce Eckel撰写,它深入浅出地讲解了Java语言的核心概念和技术。本压缩包包含的“练习题答案”无疑是学习过程中的一大辅助资料,可以帮助读者检验自己的理解...

    think in java的习题

    《Think in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,被誉为Java学习者的开山之作。这本书深入浅出地介绍了Java语言的核心概念和技术,为读者提供了全面而深刻的Java编程知识体系。 首先,我们要...

    Thinking in Java 4 源码 导入IDEA可直接运行

    《Thinking in Java》是Bruce Eckel的经典之作,第四版(TIJ4)更是Java程序员必读的书籍之一。这本书深入浅出地介绍了Java语言的核心概念和技术,包括面向对象编程、集合框架、多线程、网络编程等众多主题。源码是...

Global site tag (gtag.js) - Google Analytics