∠ 面向对象的好处:符合人类的思维习惯。
⊥ 面向对象的程序设计过程。
- 第一步:发现类
- 第二步:发现类的属性和方法
- 第三步:发现类的方法
⊥ 面向对象的设计过程就是抽象的过程。抽象时遵循的原则如下:
- 属性和方法的设置是未来解决业务的问题
- 关注主要的属性和方法
- 如没必要,勿增加额外的类,属性和方法
⊥ 使用类图的好处
用于分析和设计“类”
直观、容易理解
类主要有属性和行为组成,属性和行为又称为类的成员变量(或者成员属性)和成员方法,统称为类的成员(除此之外,类的成员还包括构造方法和代码块)。
⊥ JAVA中的创建对象,调用属性及方法
- 通过构造方法创建对象,如 类名 对象名 = new 类名();
- 通过对象名.属性名的方式调用属性
- 通过对象名.方法名的方式调用方法
类(Class)和对象(Object)是面向对象中的两个核心概念。类是对某一类事物的描述,是抽象的概念上定义的,对象是实际存在的,具体是事物的个体。
常量:使用final关键字修饰,并且常量名通常为大写。
final除了修饰属性外,还可以修饰类的方法
∠ 构造方法及其重载
⊥ 构造函数
访问修饰符 构造方法名 ( ) {
//初始化代码
}
作用:实例化对象。
特征:方法名与类名相同,没有返回值,连void也不能有。
创建一个类的时候,会有一个默认的隐式的无参的构造方法,当你显式的给了一个有参的构造方法时,默认的会消失。所以建议大家创建有参构造方法时,创建一个无参的构造方法。
⊥ 方法重载
同一类中,方法名相同,参数列表不同。与返回值和修饰符无关。
∠ Static
- Static可以修饰属性,方法,和代码块。
- Static修饰的 变量属于这个类的所有
- Static修饰的属性和方法称为类属性(类变量)和类方法
- 不用Static修饰的属性和犯法属于单个对象,通常称为实例属性(实例变量)和实例方法。
- 静态**,在类加载的时候,先加载静态属性,静态代码块。
- 静态属性,代码块可以用类名调用,也可以用实例对象调用。实例属性和方法只能被实例对象来调用。
⊥ static修饰与非static修饰的区别
⊥ 注意:静态方法中不能使用this和super关键字
⊥ 常见错误
结论一:在方法里不可以定义static变量,也就是说,类变量不能是局部变量
结论二:构造方法没返回值类型,如果有,则不是构造方法,而是和构造方法同名的成员方法。
∠ 面向对象三大特征之一 ——封装
⊥ 封装的概念
- 封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
- 封装的步骤
修改属性可见性,来限制对属性的访问,不允许外不直接访问,而通过该类提供的方法来实现许隐藏信息的操作和访问。 - 封装的好处
隐藏类的实现细节
只能通过规定方法访问数据
方便加入控制语句
方便修改实现
⊥ 添加getter/setter方法的快捷键:Shift+Alt+S+R
⊥ 封装时会用到多个权限控制符来修饰成员变量和方法
- private:成员变量和方法只能在其定义的类中访问,具有类的可见性。
- 默认:成员变量和方法只能在同一个包里的类访问,具有包的可见性。
- protected可以被同一个包里的类访问,被同一个项目中不同包中的子类访问。
- public:可以被同一项目中的所有类访问,具有项目可见性,这是最大的访问权限。
this 关键字是对一个对象的默认引用,在每个实例方法的内部,都有一个this引用变量,指向调用这个方法的对象。