# 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`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.mcyou.cc/java-xiang-guan/java-mian-xiang-dui-xiang-jian-yao-zong-jie-yi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
