2019-05-19 jave核心代码看书笔记(四)

第四章 对象和类

1.面向对象的程序是由对象组成,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。
2.类 :实例域(数据) + (操作数据的)方法
3.封装 :绝不让类中的方法直接访问其他类的实例域 “黑盒“特征-----提高了重用性和可靠性也就是在同样的处理方法下,只需要改变存储数据的方式就可以,不需要发生大的变化
4.类之间的关系
依赖: 类A的方法操纵类S的对象 A依赖于S 应尽可能减少依赖(降低耦合度)
聚合:类A的对象包含类S的对象
继承: 类A扩展类B 类A不但包含从类B继承的方法 还可以有一些新的方法、属性
5.构造器与类同名
每个类可以有一个以上的构造器
构造器可以有0个、1个或1个以上的参数
构造器没有返回值
构造器总是伴随着new操作一起调用
隐式参数与显式参数
6.私有方法
public -----> private 数据一般都为私有的 方法可以公有,也可以私有
7.Final实例域
final 基本数据类型域 或 不可变类的域
private final Date hiredate;
意味着存储在hiredate变量中的对象引用在对象构造之后不能被改变。
任何方法都可以对hiredate引用的对象调用setTime更改器。
8.Main方法 -------静态方法
启动程序时还没有任何一个对象,静态的main方法将执行并创建程序所需要的对象
9.方法参数
参数传递:①、传递的是值(值调用)、布尔类型(true、false)
②、传递的是变量地址(引用调用)
传递的值不能改变其内容。 只是将值传递过来。

在Java程序设计语言中,方法参数的使用情况:

一个方法不能修改一个基本数据类型的参数(即数值型和布尔型)
一个方法不能改变一个对象参数的状态
一个方法不能实现让对象参数引用一个新的对象
11.重载
这种叫做重载 :有相同的名字,但是参数不同(参数类型、个数不同,且都要指明) 指出方法名以及参数类型------方法的签名
编译器根据所提供的构造方法找到与其对应的;若编译器找不到匹配的或者找到多个,就会产生编译时错误(该过程为重载解析)
注意:返回类型不是方法签名的一部分(不能有两个名字相同、参数类型也相同却返回不同类型值的方法)

12.默认域初始化
若构造其中没有显式地进行赋值,那么会自动度为默认值:数值=0,布尔值=false,对象引用=null
不明确地对域进行初始化,会影响代码可读性

13.默认构造器
没有参数的构造器
若在类中没有提供任何一个构造器,则系统会自动提供一个默认构造器,所有实力域的值均为默认值
注意:若类中提供了一个及以上构造器,但是没有编写默认的构造器(也就是无参的构造器),而在构造对象时还想使用默认的,则不合法,会产生错误
14显示域初始化
在调用构造器时,应到确保不管怎样调用,每个实例域都可以被设置为一个有意义地初值。
赋初值:初始值是常量的情况
初始值可以不是常量。调用方法对域进行初始化
15.参数名
参数命名时技巧:
1、在参数前加上前缀或者后缀之类的 , _xxx,(固定字母)xsalary,msalary
2、参数变量用同样的名字将实例域屏蔽起来
16.调用构造器的具体处理步骤:
1、所有数据域被初始化为默认值(0、false或null)
2、按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块
3、若构造器第一行调用了第二个构造器,则执行第二个构造器的主体
4、执行这个构造器的主体
17对象析构与finalize方法
析构器最常见操作:回收分配给对象的存储空间
由于Java有自动的垃圾回收器,不需要人工回收内存,所以Java不支持析构器

若特殊情况(资源不再需要,将其回收和再利用),可为类添加finalize方法—将在垃圾回收器清除对象之前调用。实际应用中,因很难知道什么时候才能调用,故而不要用这个方法回收短缺资源 不鼓励使用

若某资源需使用完毕后立即关闭,则需要人工应用类似dispose或close的方法来完成相应的清理操作。
注意:若该类使用了这样的方法,对象不再使用时一定要调用它
18.包
包 用于存放类 确保类名的唯一性 每个包之间独立
在包中定位类 是 编译器的工作。
优点:便于组织代码,当与被人代码合并时方便分开管理
Java类库,包括java.lang、java.util和java.net等 具有层次结构
所有标准的Java包都处在java和javax包层次中
一个类可使用所属包中的所有类与其他包中的公有类
19.文档注释
/** 开始
这种注释的方式将代码和注释保存在同一文件中,在代码修改时,重新运行javadoc就可轻而易举保持二者的一致性
注释的插入
javadoc实用程序(utility)在下面特性中抽取信息:
20.包
公有类与接口(接口见第六章)
公有的和受保护的方法(受保护特性见第五章)
公有的和受保护的域
注释应当放在所描述特性的前面。以/*开始,/结束

21.通用注释
可用在类文档的注释中:
@author name
产生一个作者条目。可使用多个@author标记,每个@author标记对应一个作者
@version text
产生一个版本条目。text可以是对当前版本的任何描述
可用于所有文档的注释中
22.类设计技巧
①一定将数据设计为私有
不要破坏封装性
可编写访问器方法getXXX或者更改其方法setXXX,以保持实例域的私有性

②一定要对数据初始化
Java不对局部变量进行初始化,但对对象的实例域进行初始化。
不要依赖于系统提供的默认值,程序员应设置默认值或在所有构造器中设置默认值

③不要在类中使用过多的基本数据类型
用其他类代替多个相关的基本数据类型的使用。

④不是所有的域都需要独立的域访问器和域更改器

⑤使用标准格式进行类的定义

23类内容顺序:

1 公有访问特性部分
2 包作用域访问特性部分
3 私有访问特性部分

24每一部分的顺序:

1 实例方法
2 静态方法
3 实例域
4 静态域

你可能感兴趣的:(2019-05-19 jave核心代码看书笔记(四))