java中的构造方法与其作用

时间:2023-03-10 07:29:13
java中的构造方法与其作用
  • 什么是构造方法呢?

  1. 方法名和类名相同
  2. 没有返回值类型,连void都不能写
  3. 没有具体的返回值

构造方法分为无参构造方法与有参构造方法。

  • 先来看一下最简单的无参构造方法:

Student.java

 package com.pr;

 public class Student {
public Student(){
System.out.println("这是一个构造方法");
}
}

StudentDemo.java

package com.pr;

public class StudentDemo {
public static void main(String[] args){
Student s = new Student();
}
}

输出结果:这是一个构造方法

把Student.java的4-6行删除了。可以发现StudentDemo.java没有报错。为什么呢?

因为,如果我们没有给出构造方法时,系统会提供一个默认的无参构造方法供我们使用。

  • 有参构造方法

Student.java

 package com.pr;

 public class Student {
private String name;
private int age;
public Student(){}
public Student(String name){
this.name = name;
}
public Student(int age){
this.age = age;
}
public Student(String name,int age){
this.name = name;
this.age = age;
}
public void show(){
System.out.println("age:"+age+",name:"+name);
}
}

StudentDemo.java

 package com.pr;

 public class StudentDemo {
public static void main(String[] args){
Student s = new Student();
s.show();
Student s1 = new Student("小明");
s1.show();
Student s2 = new Student(20);
s2.show();
Student s3 = new Student("小明",18);
s3.show();
}
}

输出结果为:

age:0,name:null
age:0,name:小明
age:20,name:null
age:18,name:小明

把Student.java的第6行删除了,发现StudentDemo.java的第5行报错了。为什么呢?

因为,当我们给出了构造方法时,系统就不再提供默认的构造方法供我们使用。

所以,我们最好手动写一下无参的构造方法。

还有需要注意的是,可以看出,构造方法可以被重载。

  • 构造方法的作用:

有了类,就是有了可以重用的代码,但是我怎么产生这个对象呢。必须要实例化这个类(当然这不是唯一产生对象的途径,比如单例模式,但本质上说所有途径都是一样的)。那么就要用到构造方法。即告诉程序我现在要实例化一个对象了,你给我马上分配内存。将内存的首地址赋给我指定的类对象。而且有时候你需要传递参数到函数里面,有了构造函数就方便了。