Java核心技术卷1

第四章

无聊的Date类

A类使用了B类时,只需要:
>javac A.java
即可以编译A和B
java编译器会自动比较.class和.java文件的版本,如果.java较新则自动重新编译之。

访问器最好返回成员变量的拷贝,clone

final修饰成员变量时,声明时可以不给初值,即final空白,在第一次使用之前必须被初始化。

每一个类都可以有一个main方法,可用于单元测试。

Java采用值传递

多个函数具有相同名称不同参数,叫做重载;函数的签名包括函数名称和参数,而不包括返回值。

局部变量未初始化时,会引起编译错误;类成员变量未初始化时会默认被初始化

显示域初始化

java一个构造器可以调用另一个构造器,用this(x,y,z);C++没有这种方式

第五章

super和this的实现是不同的,super并不是一个对象的引用,不能将super赋值给一个变量,它只是一个指示编译器调用超类方法的特有关键字。

使用this或super调用构造函数时,必须放在首行

Integer Long是「包装器」,对于和基本类型的转换时「编译器」进行的自动打包和拆包,而不是jvm的行为。

java也支持参数数量可变的方法,并且最后一个参数可以传递数组。
main方法也可以写成:

public static void main(String... args)

强制类型转换:

强制类型转换的前提是父类型引用指向的对象类型确实是之类对象,此时才可以进行转换,否则会抛出ClassCastException异常。正确的方式是在转换前通过instanceof来判断。

使用Method实现回调功能,是C程序员的方式,Java应该使用接口实现。

第六章

接口中不能包含实例域或静态方法,但是可以包含常量。
接口中方法默认为public;接口中常量默认为public static final。

一个类只能继承一个超类,但是可以实现多个接口

内部类


图片发自简书App

内部类可以声明为public或private

内部类的对象有一个隐式引用,它引用了实例化该内部对象的外围类对象,通过这个引用,可以访问外围类对象的全部状态。static内部类没有这种指针

内部类声明为私有,只有其外部类才能够生成内部类对象。只有内部类可以是私有类,而常规类只可以具有包可见性,或公有可见性。

javap命令

内部类会生成outer$inner. class的文件

局部内部类的实现:


图片发自简书App

注意局部内部类是如何访问final的局部变量的,这里有些像闭包。

图片发自简书App

当内部类不需要引用任何外部类的对象时,可以声明为static。
声明在接口中的内部类自动成为static和public。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在生活和工作中有很多碎片时间可以用来看书,但通常书籍一般都五六百页,常常忘记自己看到哪里,遂开文章记录.选...
    勤息嘻嘻嘻阅读 10,975评论 0 12
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,929评论 18 399
  • 1、.java源文件: 一个以”.java“为后缀的源文件:只能有一个与文件名相同的类,可以包含其他类。 2、类方...
    Hughman阅读 5,422评论 1 9
  • 今天早上跟孩子发火,非常非常凶,就因为孩子早上没按时弄好自己。到底是暗示上班重要还是孩子重要? 对孩子多点爱心,多...
    可可_1c46阅读 1,111评论 0 0
  • 农历新年马上到了,回首过去,仿佛空白,只有摄影留下的画面才能让自己明白经历过的事。 傍晚是我最喜欢的一个时间段...
    秋鸿学长阅读 3,051评论 0 1