零、基本认识
面向对象, 耦合度低、扩展性高
通过对象与对象之间的协作,完成各种任务(像现实生活中)
两个概念, 三个特征, 三个步骤:
类和对象的概念
面向对象三大特征: 封装、继承、多态
-
三个步骤:
面向对象的分析:OOA
面向对象的设计:OOD
面向对象的编程:OOP
一、类
(一)定义
代表一类具有共同特征的事物, 是一个模板, 对应现实生活中的一个概念(抽象)
(二)语法(编写代码的开始)
类体 = 属性+方法, 且必须通过 [对象] 才能访问某个具体(非static的)属性/方法
[修饰符列表] class 类名{
属性/状态; //属性通常是采用一个变量的形式来完成定义的。
方法/动作; //类体中不能直接编写java语句 [除声明(+初始化)变量之外]
}
//关于类的知识点内容List
[修饰符列表] class 类名{
静态代码块;
实例代码块;
静态变量;
实例变量;
构造方法;
静态方法;
实例方法;
}
二、对象
(一)定义
实际存在的个体. 对应现实生活中实际存在的事物.
实例化:
类-实例化->对象
对象-抽象->类
(二)语法
-
new 类名()
new运算符: 作用是创建对象(在JVM堆区开辟新的内存空间)
-
属性(即成员变量)没有手动赋值的话, 系统赋默认值
类型 默认值 byte, short, int, long 0 Float, double 0.0 boolean false char \u0000 对象 null 数据类型两大类:
引用数据类型: 数组, 接口, 对象
基本数据类型: 见上表
三、变量/方法类型
(一)变量类型的划分
-
成员变量
实例变量
类变量/静态变量
局部变量
(二)static关键字
静态数据存放于代码区, 类加载时即开辟空间/写入, 有“共享”性质
决定对变量/方法的访问方式:
- 有static:
类名.方法名(实参列表)
- 无static:
引用.方法名(实参列表)
(即new一个对象, 通过对象访问)
四、特点之——封装
(一)优点
- 隐藏复杂, 之间简单的操作入口
- 封装后才是真正的“对象”(独立体)
- 安全性: 完全暴露/毫无限制不叫封装, 可以确保数据安全/有效
- 实现代码复用, 且有较好的适应性
(二)步骤
所有属性私有化修饰, 让其只能在本类中进行访问
-
对外提供简单的访问入口(如getter & setter), 实现安全访问
其内部有安全控制语句(安全过滤)
*getter & setter的命名规则:
小驼峰, 直接跟变量名(首字母大写). 如: setAge(int a){...}