一,成员和局部
成员:也叫全局,定义在类中方法外
- 成员变量
- 成员方法
局部:定义在方法中
- 局部变量
局部变量和成员变量的区别:
定义位置:局部变量定义在方法中,成员变量定义在方法外
作用范围:局部变量只能在定义它的方法中使用,成员变量可以在整个类中使用
重名问题:当局部变量和成员变量名相同时,采用
就近原则
进行调用默认值:局部变量没有默认值,必须先赋值才可以使用,成员变量有默认值
成员变量的默认值与数组默认值的规则相同
在内存中的位置:成员变量在堆中,因为成员变量属于类的对象;局部变量在栈中,因为局部变量只能在定义它的方法中使用,方法被调用后进入栈内存
生命周期:局部变量从方法调用开始,到方法运行完毕后释放;成员变量从创建对象开始,到对象从堆内存中释放结束。
二,面向对象的概念
面向过程的语言:C语言
面向对象的语言:C++、Java、Python
面向过程和面向对象都是编程思想
区别:
- 面向过程:重点放在程序的功能是如何执行的
- 面向对象:重点放在程序的功能可以找谁来完成
三,类和对象
类:数据类型,一类事物的集合
- 基本信息
- 行为
对象:根据类创建出来的一个实体(实例),这个对象具有该类中所有的基本信息和行为
根据类创建出来的实体,称为创建对象、也称为实例化
例如:
类:
宠物类
- 基本信息:昵称、种类、年龄、性别、价格
- 行为:吃、睡
对象:
宠物对象
- 基本信息:毛毛、田园犬、2、母、3000
- 行为:具体怎么吃、怎么睡
代码中:基本信息=>属性、行为=>方法
四,类的定义和对象的创建
4.1 类的定义
格式:
1
2
3
4 public class 类名{
属性
方法
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // 定义了一个Hero类
public class Hero {
// 姓名
public String name;
// 血量
public int hp;
// 攻击
public void attack(){
System.out.println("攻击");
}
// 回城
public void back(){
System.out.println("回城");
}
}
4.2 对象的创建
格式:
1 数据类型 对象名(引用变量) = new 数据类型();
1 Hero h1 = new Hero();
五,属性和方法的调用
格式:
1
2
3
4 方法的调用:对象名.方法名(参数);
属性的调用:
1.获取:对象名.属性;
2.赋值:对象名.属性 = 值;
六,构造函数
6.1 构造函数的特点
- 构造方法的方法名与类名完全一致
- 每一个类都有一个默认的隐式的无参的构造函数
- 构造函数没有返回类型,连void都不能有
- 每次创建对象都会执行构造函数
- 一旦构造函数写出了,原来的默认构造函数就不存在了,除非重新写出它
6.2 构造函数的作用
- 创建对象
- 创建对象的同时对属性进行初始化
6.3 构造函数的重载
概念:同一个类中构造函数的参数列表不同就是构造函数重载
1
2
3
4
5
6
7
8 public Hero() {
}
public Hero(String name, String nation, int blood) {
this.name = name;
this.nation = nation;
this.blood = blood;
}