概述
- 对象:行为、状态、标识
- 类之间的关系:依赖(uses-a)、聚合(has-a)、继承(is-a)
类
- java中,任何对象都是对存储在另一个地方的对象的引用,包括new的返回值
- java对象变量 ≈ C++指针 ,但java有gc
- java所有对象都是在堆中构造的,构造器总是伴随new使用
- java内联方法由虚拟机决定
- 如果get方法需要返回一个可变数据域,应使用clone进行克隆
- 方法可以访问所属类的所有对象的私有数据
final
- 在构造器执行后,final域的值被设定,且不可再更改(即没有set方法)
- final适用于基本/不可变类型域 eg.String
- 对于可变类,仅意味着地址指向不变,但对应内容可变(可变类)。可以调用可变类对象的set方法改变值。
- 更多
static
- 每个类中只有一个这种域,类的所有对象会共享同一静态域
- 静态方法不能向对象实施操作,即没有隐式参数,只能访问静态域
- 工厂方法
- main函数
函数参数
- Java采用按值调用,函数得到的是参数值的拷贝
- 函数参数分为基本类型与对象引用
- 函数不能修改基本类型的参数
- 函数可以改变对象参数的状态(属性)
- 函数不能让对象参数引用新的对象
对象构造
- 方法签名:方法名+参数类型
- 重载、默认域初始化、无参构造、显示域初始化、初始化块
类设计技巧
- 保证数据私有
- 保证数据初始化
- 不在类中使用过多的基本类型(封装)
- 不是所有域都需要get/set
- 将职责过多的类分解