OOP 简介
面向对象编程(Object Oriented Programming)
以具体的事或物(Object)为核心进行分析和处理问题的编程思想,称为 OOP。
所谓的面向对象,是指分析问题时,以问题所涉及到的事或物为中心的分析方式。
重点是对一系列的事物进行提炼。
归纳和整理的结果就是类 Class,具体的事或物就是对象 Object,也称实例。
OOP 三大特征:
- 继承
- 封装
- 多态
声明 class 的基本语法
[可见性] class 类名 {
属性:共有的特征,对名词进行提炼
方法:共有的功能,对动词进行提炼
}
通常,类名的首字母要大写,采用大驼峰。
属性和变量的区别
- 属性的作用域为当前类,还可跟随对象变化;变量的作用域为大括号内部。
- 属性不用初始化,JVM 会在实例化类时自动初始化;变量必须初始化。
类和对象
类的声明
// 类的声明(元空间)
class Student {
String name;
void study() { // void 表示方法的返回值
System.out.println("学生 " + name + " 在学习");
}
// 当参数的个数不确定,但类型一致时,可声明可变参数,可变参数应位于参数列表的最后。
String test(int... a) {
System.out.println(a);
return "test";
}
}
类的实例化
类的实例化,即创建对象
// 变量 a 中存储的是对象的内存地址(引用、指针),对象的数据存储在堆空间,变量 a 存储在栈空间。
Student a = new Student();
a.name = "jack";
a.study();
空对象
空对象(null):所有引用类型的变量默认值是 null。
// 特殊对象:空对象(null),没有引用的对象,称之为空对象。
// 所有引用类型的变量默认值就是 null
Student b = null;
System.out.println(b);
属性的默认值
如果声明类时,没有指定属性的默认值。那么,创建对象时,类的属性会默认初始化,初始化的值和属性的数据类型有关。
- byte, short, int, long 的默认值为 0
- float, double 的默认值为 0.0
- boolean 的默认值为 false
- char 的默认值为空字符
- 引用数据类型的默认值为 null