## 面向对象的基本概念
#### 类 (class)
- 类是同种对象的集合与抽象。描述同一类对象的公共属性
和行为。
- 类是一种抽象的复合数据类型,类必须实例化(instance)生成对象才能使用。
- 类是构成Java程序的基本单位。
#### 对象 (object)
- 对象是属性(property,又称特征或状态)和操作相关的行
为(action)的集合(collection) 。
属性
```
graph LR
属性-->多个属性数据
```
```
graph LR
行为-->多个行为方法
```
- 所有面向对象的程序都是由对象组成。
#### 类和对象之间的关系
- 类表示一个共性的产物,是一个综合的特征;而对象,是
一个个性的产物,是一个个体的特征 。
- 类由属性和方法组成:
属性,就相当于人的一个个的特征。
方法,就相当于人的一个个的行为,例如:说话、吃
饭、唱歌、睡觉。
- 对象是类的属性和方法的具体实现。
#### 消息
用于对象之间交互,以实现复杂的行为。
#### OOP面向对象编程
Oriented Object Programming是在数据抽象基础上进
行编程的方法和技术。
#### 面向对象的三个基本特征
1. 封装(encapsulation):信息隐蔽技术
2. 继承性(inheritance):父类、子类、支持单继承
3. 多态性:子类可以具有不同的数据类型或表现出不同的行为。
#### Java类的逻辑结构
Object类是Java中所有类的父类,称为基类。
#### 访问控制修饰符
可限定类、属性或方法被程序里其他类访问和调用的
权限。总是放在类、方法、属性的最前面。
类型 | private | 无修饰符或friendly | protected | public
---|---|---|---|---
同一类 |是|是|是|是
同一包中的子类 |否|是|是|是
同一包中的非子类|否|是|是|是
不同包中的子类|否|否|是|是
不同包中的非子类|否|否|否|是
#### 类的定义
- 类的声明和类的实现(类的主体即类体)
- 语法格式:
[public] [abstract | final] class 类名称
[extends 父类名称]
[implements 接口1,接口2,…]
{
变量成员声明及初始化;
方法声明及方法体;
}
#### 成员变量
- 描述所有对象公用的属性(状态)
- 语法格式:
[public | protected | private]
[static][ final][transient] [volatile]
变量数据类型 变量名1[=变量初值];
JAVA类和对象概念