面向对象概述

1. 类

class
类是现实的抽象

2. 对象

new className();
对象是类的实例

3. 识别(设计)类

动词对应的类中的方法(method)
名词一般对应类

“例如,当一个新的商品添加到订单中时,那个订单对象就是被指定的对象,因为它知道如何存储商品以及如何对商品进行排序。也就是说,add应该是Order类的一个方法,而Item对象是一个参数。”

4. 类之间的关系

  1. 依赖(dependence),尽量少,减耦合
  2. 聚合(aggregation),包含?
  3. 继承(inheritance)

image.png

预定义类

  1. 对象和对象变量

对象变量仅仅是对象(类实例)的一个引用,未初始化的对象变量使用会报错

  1. LocalDate类
  1. LocalDate.now();

自定义类

  1. 私有方法

    静态修饰符

  2. 私有方法(属性)每个实例都会copy一份,静态方法(属性)只有一份,保存在类中

    对象构造

    1. 重载

    同一个方法名,不同的参数,执行不同的操作

    2. 无参构造器

    3. 初始化块

    “首先运行初始化块,然后才运行构造器的主体部分。”
    “通常会直接将初始化代码放在构造器中。”

  1. 类的导入
  1. import java.util.*;
  2. // 或者
  3. java.util.Date deadline = new java.util.Date();
  1. 静态导入
  1. import static java.lang.System.*;
  2. // 即可以使用静态方法不佳前缀
  3. out.println("good bye");

注释

1. 类注释

import 之后, class定义之前

2. 方法注释

3. 静态变量(方法)注释

类设计技巧

1. 数据私有,确保封装性

2. 对数据进行初始化

3. 不要过多使用基本类型

4. 避免过度使用getter和setter方法

5. 将职责过多的类进行分解,解耦

6. 类名和方法名要能够体现职责

7. 优先使用不可变的类