一,面向对象的概念
面向过程:C语言
面向对象:Java、C++、Python
面向过程和面向对象都是编程思想
面向过程和面向对象的区别:
二,类和对象
类:数据类型,一类事物的集合
对象:根据类创建出来一个实体(实例),这个对象具备了这个类中所有的基本信息和行为
例如:
类:
护士类
1. 基本信息:工号、姓名、部门
2. 行为:打针,护理
对象:
护士对象:
代码中:基本信息 -> 属性、行为 -> 方法
三,成员和局部
成员:全局,定义在类中,方法外
局部:定义在方法中
1. 局部变量
四,类的定义和对象的创建
4.1 类的定义
格式:
public class 类名 {
属性
方法
}public class Hero {
public String name;
public int hp;
public boolean gender;
public int level;
public int exp;
public void attack(){
}
public void back(){
}
public void shopping(){
}
}
4.2 对象的创建
格式:
数据类型 对象名 = new 数据类型();Hero h = new Hero();
4.3 属性和方法的调用
格式:
对象.方法名();
赋值:
对象.属性 = 值;
获取:
数据类型 = 对象.属性;
打印:
System.out.println(对象.属性);h.attack();
赋值:
h.name = "亚索";
获取:
int hp = h.hp;
打印:
System.out.println(h.exp);
五,将引用数据类型作为方法的参数和返回值
如果传递的参数是引用数据类型,那么形参接收到的是实参的地址,这个形参指向这个实参在堆内存中的地址。
如果方法的返回值是引用数据类型,那么接收这个返回结果的变量接收到的就是返回的地址,这个变量指向返回值在内存中的地址。
注:
在将引用数据类型的对象进行传递时,一定要避免空指针异常(NullPointerException)。
什么时候会发生空指针异常:一个引用变量没有指向指定的存储空间或者这个引用变量的地址是 null 时,这个引用变量就是一个空对象,当使用空对象进行属性或者方法的调用时,就会发生空指针异常。
六,构造函数(方法、器)
6.1 构造函数的特点
6.2 构造函数的作用
6.3 构造函数的重载
定义若干个构造函数,参数列表不同
作用:创建对象的同时对属性进行初始化
public Employee(String a, int b, String c){
name = a;
level = b;
report = c;
}
6.4 this 关键字
在创建对象后,可以通过 this 关键字来获取该对象的地址(可以通过 this 来表示当前创建出来的对象),所以我们可以使用 this 来明确变量是当前类型中对象的属性。
public Employee(String name, int level, String report){
System.out.println("this的地址:"+this);
this.name = name;
this.level = level;
this.report = report;
}
this 的作用:
作用:当多个构造函数中出现了重复的初始化语句时,可以使用 this 调用其他构造函数来简化代码完善对象属性的赋值
注:构造方法的调用只能出现在其他构造函数的第一行