JAVA基础知识 | 构造方法

228 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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