二、Java面向对象(4)_构造函数

2018-04-29

 

构造函数(构造方法/构造器)

 

在java类中,如果不显示声明构造函数,JVM 会给该类一个无参的默认(缺省)的构造函数,这个构造函数不执行任何代码(即花括号里无方法体)且你产生类的对象时只能用不带参数的方法。一个类 可以有多个构造函数(重载)。一个类 至少存在一个构造函数
当一个类声明了构造函数以后,JVM 是不会再给该类分配默认的构造函数。因此写了有参数的构造方法就最好加一个无参数的构造方法。

---------------------------------------------------------------------------------------------------------------------------

一、构造函数的作用

  • 创建类的对象,必须和new关键字一起使用(创建对象其实是在调用构造函数,构造函数不能直接被调用,必须和new一起使用)。
  • 初始化(实例化)对象

 

二、构造函数的特点

  • 构造方法的方法名必须与类名相同。
  • 构造方法没有返回类型(因此在方法名前不申明返回类型),也不能定义为void。  void Student(){};这是普通方法。
  • 构造方法中不需要使用return返回语句。(其实构造方法是有返回值的,它返回的是当前创建对象的引用)。
  • 构造方法可以重载。

 

三、默认(缺省)构造函数

  • 符合构造函数的特点
  • 无参数
  • 无方法体
  • 如果类A没有使用public修饰,则默认构造函数也没有public修饰符

   如果类A使用了public修饰,那么默认构造函数也使用public修饰符

   (一般来说,默认构造函数与当前类的访问修饰符是一致的)

 

代码说明:

 1 public class Test3 {
 2    private int n;
 3 
 4    Test3() {
 5       System.out.println("调用默认构造器");
 6    }
 7 
 8    Test3(int n) {
 9       this.n = n;
10      System.out.println("调用非默认构造器");
11   }
12 
13    public static void main(String[] args) {
14        Test3 t1; //声明一个对象 不调用任何构造函数(没有初始化)
15        Test3 t2 = new Test3(); //声明并创建一个对象 使用默认构造函数
16        Test3 t3 = new Test3(3); //声明并创建一个对象 使用非默认构造函数 不使用默认构造函数
17    }
18 }

四、构造函数的重载

  构造方法是一种特殊的方法,可以重载。

原文地址:https://www.cnblogs.com/sunNoI/p/8972072.html