美文网首页
第4章 对象与类

第4章 对象与类

作者: KaveeDJ | 来源:发表于2019-06-04 16:19 被阅读0次

4.1 面向对象程序设计概述

4.1.1 类

  • 类(class)是构造对象的模板或蓝图
  • 封装不过是将数据和行为组合在一个包中

4.1.2 对象

4.1.3 识别类

  • 名词与动词

4.1.4 类之间的关系

  • 依赖:uses-a
  • 聚合:has-a
  • 继承:is-a

4.2 使用预定义类

4.2.1 对象与对象变量

  • 局部变量不会自动地初始化为null,而必须通过调用new或将它们设置为null进行初始化。

4.2.2 Java类库中的LocalDate类

  • Date类:用来表示时间点
  • LocalDate:用来表示大家熟悉的日历表示法

4.2.3 更改器方法与访问器方法

4.3 用户自定义类

4.3.1 Employee类

4.3.2 多个源文件的使用

4.3.3 剖析Employee类

  • 构造器总是伴随着new操作符的执行被调用

4.3.5 隐式参数和显式参数

  • 方法前面是隐式参数,方法后面是显式参数
  • this代表隐式参数,即调用方法的对象

4.3.6封装的优点

  • 更改器方法可以执行错误检查,然而直接对域进行赋值将不会进行这些处理。
  • 不要编写返回引用可变对象的访问器方法
  • 如果需要返回一个可变对象的引用,应该首先对它进行克隆clone

4.3.7 基于类的访问权限

4.3.8 私有方法

4.3.9 final实例域

  • final表示只有一次建立引用的机会,但引用的对象是可以更改的

4.4 静态域与静态方法

4.4.1 静态域

  • 每一个对象都拥有实例域的一份拷贝

4.4.2 静态常量

4.4.3 静态方法

  • 类直接调用,没有隐式参数
  • 对象也可以调用静态方法,不过,不建议这么使用

4.4.4 工厂方法

  • 本质上就是对new方法的封装

4.4.5 main方法

4.5 方法参数

  • Java程序设计语言总是采用按值调用,方法得到的是参数值的拷贝,方法不能改变参数变量的内容
  • Java是直接访问,不存在间接访问
  • 一个方法可以改变一个对象参数的状态
  • 一个方法不能让对象参数引用一个新的对象

4.6 对象构造

4.6.1 重载

  • 相同的名字,不同的参数
  • 返回类型不是方法签名的一部分

4.6.2 默认域初始化

4.6.3 无参数的构造器

  • 域会自己设置默认值,但局部变量,必须手动赋初始值

4.6.4 显示域初始化

  • 在类定义中,直接将一个值赋给任何域。
  • 在声明中赋值
  • 初始化块

4.6.5 参数名

  • this.name = name

4.6.6 调用另一个构造器

  • this

4.6.7 初始化块

  • 对象初始化块在构造器之前执行
  • 调用构造器的具体处理步骤:
    1 所有数据域初始化为默认值
    2 按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块
    3 如果用this调用其他的构造器,则先调用另外的构造器
    4 最后调用本构造器的剩余代码
  • 对类的静态域进行初始化,可以使用静态代码块

4.6.8 对象析构与finalize方法

4.7 包

4.7.1 类的导入

4.7.2 静态导入

  • import语句不仅可以导入类,还增加了导入静态方法和静态域的功能

4.7.3 将类放入包中

  • 如果包与目录不匹配,虚拟机就找不到类

4.7.4 包作用域

4.8 类路径

  • classpath:一般就设置为. 代表当前目录

4.9 文档注释

  • javadoc

4.9.1 注释的插入

4.9.2 类注释

4.9.3 方法注释

4.9.4 域注释

  • 只需要对公有域建立文档,通常是静态常量

4.9.5 通用注释

4.9.6 包与概述注释

4.9.7 注释的抽取

4.10 类设计技巧

  • 优先使用不可变对象,这样可以避免多线程的并发修改异常。

相关文章

网友评论

      本文标题:第4章 对象与类

      本文链接:https://www.haomeiwen.com/subject/rkvlxctx.html