面向对象——对象的构造和初始化

90 阅读3分钟

对象的构造和初始化

调用构造方法时,步骤如下

  1. 分配新对象的空间,并进行默认的初始化。
  2. 执行显式的成员初始化。
  3. 执行构造方法。

成员变量

成员变量的作用域

类中低端是直接定义在类的内部、方法的外部的变量。称为成员变量。

成员变量的作用域是整个类。

显式成员初始化

如果在成员说明中鞋油简单的复制表达式,就可以在构造对象时进行显示的成员初始化。

演示:

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);
	}
}

局部变量的作用域

局部变量就是定义在方法内部的变量。

局部方法只能在方法内部使用。

成员变量、局部变量的区别

  1. **作用域不同。**局部变量的作用域仅限定于定义它的方法,在该方法外无法被访问。成员变量的作用域是在整个类中,所有的成员方法都可以使用它。。如果访问权限允许,还有可以在类外部使用成员变量。
  2. **初始值不同。**对于成员变量,如果在类定义中没有给它赋予初始值,java会给它赋予默认值。但不贵给局部变量赋予,因此局部变量在使用前必须初始化。
  3. 在同一个方法中不允许有同名的局部变量,在不同的方法中可以有同名的局部变量。
  4. 局部变量可以和成员变量名相同,并且在使用时局部变量有更高的优先级。

按值传递

参数是在方法定义中声明的变量,用于接收传递给方法的值,而实参则是在方法调用时传递给方法的具体值。

构造方法

在Java中,当创建一个类的对象时,会自动调用该类的构造方法。构造方法分为默认构造方法自定义构造方法。构造方法是一种特殊的实例方法,具有特殊的功能。它的名称与类名相同,没有返回值,并且在使用new关键字创建对象实例时会自动被调用

构造方法的定义

构造方法的作用是为成员变量的初始化。

定义构造方法的语法格式:

[访问修饰符] 方法名([参数列表]){
	//省略方法体的代码
}

在缺少自定义构造方法的情况下,Java自动添加一个默认构造方法。该默认方法不带任何参数。

默认构造方法的参数列表及方法体均为空,所生成的对象的属性值也为零或空

方法的重载

定义

方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或参数个数或参数顺序。

特点
  • 在同一个类中
  • 参数的个数或者类型或者顺序不同
  • 方法的返回值不能作为方法是否构成重载的依据
调用

在调用时,根据实参与形参在类型、个数、顺序一一匹配的规则调用。

优点

是对原有方法的一种升级,可以根据参数的不同,采用不同的实现方法,而且不需要编写多个名称,简化了调用方法的代码。

构造方法的重载

构造方法也可以同普通方法一样进行重载。