对象的构造和初始化
调用构造方法时,步骤如下
- 分配新对象的空间,并进行默认的初始化。
- 执行显式的成员初始化。
- 执行构造方法。
成员变量
成员变量的作用域
类中低端是直接定义在类的内部、方法的外部的变量。称为成员变量。
成员变量的作用域是整个类。
显式成员初始化
如果在成员说明中鞋油简单的复制表达式,就可以在构造对象时进行显示的成员初始化。
演示:
public class CarTest{
public static void main(String[] args){
Car c1 = new Car();//创建对象并将地址赋给变量c1
c1.run();//对象的引用c1调用函数run();
Car c2 = new Car();//创建对象并将地址赋给变量c2
c2.run();//对象的引用c2调用函数run();
Car c3 = new Car();//创建对象并将地址赋给变量c3
c3.brand="BYD";//将"BYD"赋给成员变量brand
c3.run();//c3再次调用run()
}
}
class Car{
String brand="BMW";//成员变量 品牌=BMW
char color='b';//成员变量 颜色=b
public void run(){
System.out.println("品牌:"+brand+" 颜色:"+color);
}
}
局部变量的作用域
局部变量就是定义在方法内部的变量。
局部方法只能在方法内部使用。
成员变量、局部变量的区别
- **作用域不同。**局部变量的作用域仅限定于定义它的方法,在该方法外无法被访问。成员变量的作用域是在整个类中,所有的成员方法都可以使用它。。如果访问权限允许,还有可以在类外部使用成员变量。
- **初始值不同。**对于成员变量,如果在类定义中没有给它赋予初始值,
java会给它赋予默认值。但不贵给局部变量赋予,因此局部变量在使用前必须初始化。 - 在同一个方法中不允许有同名的局部变量,在不同的方法中可以有同名的局部变量。
- 局部变量可以和成员变量名相同,并且在使用时局部变量有更高的优先级。
按值传递
参数是在方法定义中声明的变量,用于接收传递给方法的值,而实参则是在方法调用时传递给方法的具体值。
构造方法
在Java中,当创建一个类的对象时,会自动调用该类的构造方法。构造方法分为默认构造方法和自定义构造方法。构造方法是一种特殊的实例方法,具有特殊的功能。它的名称与类名相同,没有返回值,并且在使用new关键字创建对象实例时会自动被调用。
构造方法的定义
构造方法的作用是为成员变量的初始化。
定义构造方法的语法格式:
[访问修饰符] 方法名([参数列表]){
//省略方法体的代码
}
在缺少自定义构造方法的情况下,Java会自动添加一个默认构造方法。该默认方法不带任何参数。
默认构造方法的参数列表及方法体均为空,所生成的对象的属性值也为零或空
方法的重载
定义
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或参数个数或参数顺序。
特点
- 在同一个类中
- 参数的个数或者类型或者顺序不同
- 方法的返回值不能作为方法是否构成重载的依据
调用
在调用时,根据实参与形参在类型、个数、顺序一一匹配的规则调用。
优点
是对原有方法的一种升级,可以根据参数的不同,采用不同的实现方法,而且不需要编写多个名称,简化了调用方法的代码。
构造方法的重载
构造方法也可以同普通方法一样进行重载。