javaSE学习-面向对象5-构造方法

什么是构造方法

构造方法:是类中的一个特殊方法

  • 方法名与类名相同
  • 没有返回值,void也没有
  • 可以有访问修饰符,但是非访问修饰符不能修饰,如static、final等
  • 构造方法不能被子类继承重写

构造方法的作用

进行初始化

对对象进行初始化,实例化对象,给对象赋值

通常我们要使用一个对象,就要将对象实例化:用new实例化对象,这个 new 就是在调用构造器来创建对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Student{
public String name;
public int age;
public int studentId;
//无参构造方法
public Student(){

}
//有参构造方法
public Student(String name,int age,int studentId){
this name = name;
this age = age;
this studentId = studentId;
}
}

默认构造函数

有时候会发现一个类中并没有写构造方法,但是可以进行对象的实例化,如:

1
2
3
4
5
6
7
8
public class A{
...
}
public class B{
public static void main(Stirng[] args){
A a = new A();
}
}

这是因为如果类中没有指定构造方法,那么系统会默认给类添加无参的public修饰的构造方法,方法体为空,但是如果用户自己定义了构造方法,系统将不会再提供空构造方法

构造器调用构造器

在一个类中有多个构造方法时,可以进行构造方法调用其他构造方法,使用this关键字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class A{
private int a=0;
private String s;
public A(String s){
System.out.println("this is s : "+s);
}
public A(){
this("tom");
}
public A(int a){
this("tom");
this(); //错误
}
}

同一个构造方法中不能多次使用this调用构造方法,只允许调用一次,而且必须放在方法的第一行