Java的构造器(构造方法)
Java的构造器(构造方法)
概念
构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。
构造方法的主要功能就是完成对象创建或者初始化。
当类创建对象(实例化)时,就会自动调用构造方法。
构造方法与普通方法一样也可以重载。
他的形式如下:
//方法名与类名相同
修饰符 方法名([参数列表]){
代码。。。
}
默认构造器
如果没有定义构造器,则会默认一个无参构造器,这就是为什么你定义了一个对象,比如 People,没有定义任何构造器却可以new这个对象,比如 new People() 。如果自定义了构造器,则会覆盖默认构造器。
禁止对象被外部创建
直接将构造器的修饰符改为 private 即可,这样就不能在外部通过new来创建这个对象了。
package com.cnblogs;
/*
本类用于实现
*/
public class Application {
public static void main(String[] args) {
//实例化一个对象
//有参
Name getna = new Name("柒");
//无参
Name namege = new Name();
System.out.println(getna.name);//柒
System.out.println(namege.name);//null
}
}
package com.cnblogs;
public class Name {
String name;
//有参构造
public Name(String name) {
this.name = name;
}
//无参构造
public Name(){
}
//构造器的重载
public Name(int a){
}
}
构造器的继承
定义父类构造器,由于该构造器自定义了一个带参构造器,覆盖了默认的无参构造器,所以不能直接 new Persion() 调用了,除非再定义一个无参构造器。
package com.cnblogs;
//父类
public class Persion {
//有参构造
public Persion(String name) {
}
//无参构造
public Persion(){
}
}
package com.cnblogs;
//子类
public class Student extends Persion{
//有参构造:super加形参必不可少
public Student(String name) {
super(name);
}
//无参构造:父类为默认构造器或者public Persion(){ } 以下代码可以不写
public Student() {
super();
}
}