持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情
构造方法
构造方法是一个特殊的方法,它的主要任务是对对象的成员属性进行初始化。
构造方法的定义
- 语法格式如下
[修饰符]构造方法名(形参列表){
若干语句组成的方法体
}
//例
public funcName(String a){
//方法体
}
说明:
-
如果类中没有定义构造方法,Java语言会提供一个不带任何参数的默认构造方法。但如果定义了构造方法,就无法使用系统提供的默认构造方法。
-
构造方法是系统在生成对象的过程中自动调用的方法,并且用户自己不能在程序中调用它们。
-
构造方法在生成对象时会被调用,但并不是构造方法生成了对象。
-
构造方法的方法名必须与类名相同。在一个对象的生成周期中构造方法只用一次。
-
实参列表应该和定义的方法形参列表的格式完全一致
-
代码示例:
public class Rectangle{
private double a;
private double b;
private String name="长方形"
// 自定义默认矩形构造方法
public Rectangle(){
a=1 ;
b=2;
name="矩形"
}
//一般矩形的构造方法
public Rectangle(double x,double y,String z){
a=x;
b=y;
name=z;
}
//........
}
关键字--this
在JAVA关键字中,this只能用于方法体内,当创建一个对象后,java虚拟机给该对象分配了一个引用自己的指针,this就是这个指针的名字。
- 在类中的非静态方法中可以使用this,而静态方法和静态代码块中是不能使用this的,因为this只与特定的对象关联,而不会与类关联。
需要使用到this的几种情况
- 通过this调用另一个构造方法--this(参数列表),这个仅仅在类的构造方法中使用。
- 方法参数与方法中的局部变量和成员变量同时命名时,成员变量会被屏蔽,此时若要访问成员变量则需要this.成员变量名的方式来引用成员变量
- 代码示例
//错误示范
public Person(String name1,int age1){
name=name1;
age=age1;
}
//正确使用
public Person(String name,int age){
this.name=name;
this.age=age;
}
- 在方法中,需要引用方法所属类的当前对象,可以直接用this