# java面向对象简要总结 一

***

java作为一门面向对象语言，最重要的特性之一就是万物皆为对象。

## 一、类

\[修饰符] class 类名{

​ 属性..

​ 方法..

​ 构造器...

}

​

类可以被理解为数据类型，同int、char等数据类型类似。类的成员包含属性、方法、构造器。

### 1.修饰符

java中常用的修饰符有：

* private 只能在该类的内部被访问，其子类也不行
* protected 可以被同包的类访问，也可以被不同包中的子类访问
* 默认修饰符 只能被同一个包的类访问
* public 能被任意同或不同包的类访问
* 其他修饰符
  * static 被修饰的类或变量为静态类/变量，静态类或变量属于类，不属于实例
  * final 被final修饰的类或方法不能被继承，一般用于避免工程问题；修饰变量同static
  * transient
  * abstract
  * 其他高级修饰符

### 2.属性

属性，或字段，是类或实例中储存的数据。

定义属性：

\[修饰符] 属性类型 属性名 （赋值）

### 3.方法

方法是类中构成类的功能的部分，负责实现特定的工作，类似于结构化程序里的函数。

方法不能独立存在，必须依附于对象。

\[修饰符] 返回值类型 方法名 (形参) {

方法体

}

### 4.构造方法

构造方法用于在创建对象时执行操作，常用于对象的初始化等。

\[修饰符] 方法名（必须和类名相同）(参数) {

方法体

}

## 二、实例

实例就是对象，是属于某个类的对象，相对于类是切实存在、占用内存的实体。

一般通过new关键字来创建实例，在内存中为对象分配空间。

类名 实例名 = new 类名()

没有被static修饰的属性或方法属于对象本身，而不属于类，可以直接由对象调用。

属于对象的属性或方法都只针对对象本身，对象间的数据并不冲突。

## 三、抽象类

### 抽象类的声明和规则

抽象类是被abstract修饰的类。抽象类必须包含被abstract修饰的抽象方法。

格式：

abstract class 类名 {

类体

}

抽象类不能被实例化，不能用new创造实例。

抽象方法没有方法体，没有{}。

### 抽象类的作用

抽象类不能创建实例，只能被当成父类被新的类继承。

这个特性让抽象类很适合作为一个类的模板存在，让子类的设计能够遵循父类的特征，避免设计的随意性。

对相同特征提取出抽象类，然后再由子类对模板进行扩展和改造，是一种非常好用的设计模式。

## 四、 包

软件包是java类的整合，具体到文件上就是不同的文件夹结构。

定义软件包：`package 包名`

导入软件包：`import 包名`

如 `import java.util.*` 、

`import java.util.Date`
