type
status
date
slug
summary
tags
category
icon
password
面向对象 Object Oriented
- 面向对象编程OOP:Object Oriented Programming
- 面向对象设计OOD:Object Oriented Design
- 面向对象OOT:Object Oriented Technology
什么是对象?
- 现实中真实世界的物体就是对象
- 我们要把真实世界中的对象通过编程语言映射的计算机世界里面
对象的具有两大特征 :状态和行为
- 状态:对象的状态是指对象所拥有的所有属性或者数据,比如大小、颜色等等。状态可以改变,也可以保持不变。
- 行为:对象的行为是指对象所能进行的动作或者操作,比如打开文件、保存文件等等。通过执行行为,对象可以改变自己的状态或者影响其他对象的状态。
什么是类?
- 类是创建单个对象的蓝图(blueprint)
- 类就是用来创建对象的
- 所有的类都会围绕着一个最基本的构建模块OOP,不同组件弄不同的类,好划分,好维护,好更改
- 一个 .java文件中可以有很多类,有且仅有一个public class, 并且类名要和文件名相同
如何写一个类?
- 类的名字
- 状态:用变量表示存储
- 行为:用方法公开表达行为
如何创建一个对象实例?
什么是构造器(Constructor)?
- 构造器是用来初始化一个对象的
- 一个类至少有一个构造器,可以有多个构造器
- 构造器的名字必须和类名完全一样
- 构造器可以视为特殊方法,没有返回值
- 如果没有定义任何构造器,该类会自动生成一个默认的无参构造器
- 如果一个类定义了构造器并且这些构造器都有参数。那么不会生成默认无参构造器
- 不要把一些业务逻辑的处理放到构造器里面
如何定义一个构造器?
什么是包 Package
包是用来组织和管理一系列类和接口的命名空间
- 命名空间 namespace, 命名空间的本质就是文件夹
- 把功能相似或相关的类或接口组织在同一个包中
- 在不同的包里可以用一样的名字
- 包有访问权限
什么是重载(Overload)
- 只体现在方法上
- 方法重载
- 构造器重载
- 方法名字一样,但参数列表不同
- 重点:只关注类型
什么是常量Constant?
- 定义常量:用关键字final来定义一个常量
- 常量被初始化后就不能再修改
- 常量命名一般用全部大写字母表示
- 在类中定义常量一般和static一起使用
static关键字
- static属性和方法属于类,生命周期也和类相同
- static成员变量只有一份
- static属性/方法被该类所有对象实例共享使用
- static方法不能调用非 static 方法
- 调用方法
- 属性:className.field
- 方法:className.method
- static 代码块 — 也属于类
Import关键字 — 导入类
- 要使用其他包的类,需要import
- Java默认导入java.lang包下的所有类
- 在一个类里面如何使用同名类
- 用package + className来表示
- 如何导入 static 相关属性和方法
访问控制符
Java 语言提供了四种访问控制符,主要用于控制其他类是否可以访问某一类中的属性和方法,从而实现数据封装。
四种访问控制符的权限大小(由大到小)为:
- public 公共访问权限
- 使用关键字 public进行权限控制
- 使用 public 声明的属性和方法能被所有类访问
- protected 继承访问权限
- 使用关键字 protected 进行权限控制
- protected 权限可以被本包中的其他类和其他包中的子类访问
- default (默认) 包访问权限
- 无关键字
- 声明属性或方法时,如果没有使用任何的权限声明,则使用 default 权限
- 默认权限可以被本包中的其它类访问,但无法被其他包中的类访问
- private 私有访问权限
- 使用关键字 private 进行权限控制
- 使用 private 声明的属性和方法只能在本类中被访问
它们的可见范围如图所示:
- 访问控制的最佳实践