面向对象编程(基础部分)
7.1类和对象
#7.1.5类与对象的关系示意图
#7.1.6类与对象的关系示意图
7.1.8类和对象的区别和联系
- 类是抽象的,概念的,代表一类事物,比如人类,猫类…, 即它是数据类型.
- 对象是具体的,实际的,代表一个具体事物, 即 是实例.
- 类是对象的模板,对象是类的一个个体,对应一个实例.
7.1.9对象在内存中存在形式(重要的)必须搞清楚
7.1.10 属性/成员变量/字段
- 从概念或叫法上看: 成员变量 = 属性 = field(字段) (即 成员变量是用来表示属性的,授课中,统一叫 属性)
- 属性是类的一个组成部分,一般是基本数据类型,也可是引用类型(对象,数组)。比如我们前面定义猫类 的 int age 就
是属性
注意事项和细节说明
7.1.11 如何创建对象
7.1.12 如何访问属性
基本语法:对象名.属性名;
案例演示赋值和输出
cat.name ;
cat.age;
cat.color;
7.1.13 类和对象的内存分配机制
7.2 成员方法
7.2.3方法的调用机制原理:(重要!-示意图!!!)
7.2.5成员方法的好处
- 提高代码的复用性
- 可以将实现的细节封装起来,然后供其他用户来调用即可
7.2.6成员方法的定义
7.2.7注意事项和使用细节
7.3 成员方法传参机制(非常非常重要)
7.3.1基本数据类型的传参机制
public class MethodParameter01 {
//编写一个 main 方法
public static void main(String[] args) {
int a = 10;
int b = 20; //创建 AA 对象 名字 obj
AA obj = new AA();
obj.swap(a, b); //调用 swap
System.out.println("main 方法 a=" + a + " b=" + b);//a=10 b=20
}
}
class AA {
public void swap(int a,int b){
System.out.println("\na 和 b 交换前的值\na=" + a + "\tb=" + b);//a=10 b=20
//完成了 a 和 b 的交换
int tmp = a;
a = b;
b = tmp;
System.out.println("\na 和 b 交换后的值\na=" + a + "\tb=" + b);//a=20 b=10
}
}
7.3.2引用数据类型的传参机制
- 结论及示意图
引用类型传递的是地址(传递也是值,但是值是地址),可以通过形参影响实参
7.4 方法递归调用(非常非常重要,比较难)
略(下次再补)
7.5 方法重载(OverLoad)
7.5.1基本介绍
java 中允许同一个类中,多个同名方法的存在,但要求 形参列表不一致!
比如:System.out.println(); out 是 PrintStream 类型
7.5.2重载的好处
- 减轻了起名的麻烦
- 减轻了记名的麻烦
7.5.4注意事项和使用细节
7.6 可变参数
7.6.1基本概念
java 允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。
就可以通过可变参数实现
7.6.2基本语法
访问修饰符 返回类型 方法名(数据类型… 形参名) {
}
7.6.3快速入门案例(VarParameter01.java)
看一个案例 类 HspMethod,方法 sum 【可以计算 2 个数的和,3 个数的和 , 4. 5,
public class VarParameter01 {
//编写一个 main 方法
public static void main(String[] args) {
HspMethod m = new HspMethod();
System.out.println(m.sum(1, 5, 100)); //106
System.out.println(m.sum(1,19)); //20
}
}
class HspMethod {
//可以计算 2 个数的和,3 个数的和 , 4. 5, 。。
//老韩解读
//1. int... 表示接受的是可变参数,类型是 int ,即可以接收多个 int(0-多)
//2. 使用可变参数时,可以当做数组来使用 即 nums 可以当做数组
//3. 遍历 nums 求和即可
public int sum(int... nums) {
//System.out.println("接收的参数个数=" + nums.length);
int res = 0;
for(int i = 0; i < nums.length; i++) {
res += nums[i];
}
return res;
}
}
7.6.4注意事项和使用细节
7.7 作用域
7.7.1基本使用
7.7.2注意事项和细节使用
7.8 构造方法/构造器
7.8.2基本语法
7.8.3基本介绍
7.8.5注意事项和使用细节
7.9 对象创建的流程分析
7.9.1看一个案例
7.10 this 关键
7.10.2 深入理解 this
7.10.3 this 的注意事项和使用细节