一、构造方法是什么,有什么用?
构造方法是类的一个特殊的成员,在类实例化时会自动调用。
通过前面的学习,我们知道为一个属性赋值有两种方法:①、直接访问对象属性 ②、通过setXxx()方法
如果想在实例化对象的同时就为这个对象的属性进行赋值,可以通过构造方法来实现
二、构造方法的定义
构造方法三个条件:
①、方法名和类名相同
②、在方法名前面没有返回值类型的声明
③、在方法中不能使用return语句
Person p=new Person( );
//new Person()语句有两个功能
//①实例化Person对象 ②自动调用构造方法Person( )
三、无参构造方法、有参构造方法
class Person{
public Person( ){
System.out.println("无参构造方法被调用");
}
}
public class Test01{
public static void main (String [] args ){
Person p=new Person();//实例化Person对象
}
}
//该方法是无参的构造方法,即构造方法不接收参数,执行后输出 无参的构造方法被调用了
下面是有参的构造方法
class Person{
int age;
//有参构造方法
public Person (int a){
age=a;
}
public void speak(){
System.out.println("我今年"+age+"岁");
}
}
public class Test02{
public static void main (String [] args){
Person p=new Person (20);//实例化同时赋值
p.speak();
}
}
四、构造方法的重载
像普通方法一样,构造方法也可以重载(参数类型或者参数个数不同)。
在创建对象时,可以通过调用不同的构造方法为不同的属性赋值。
五、构造方法注意事项
java中每一个类都至少有一个构造方法,如果我们没有创建,系统弄会自动为我们创建一个默认的构造方法(无参,方法体中无代码)。
但是只要我们自己定义了构造方法,系统就不会再为我们提供默认的构造方法了。如果我们定义了一个有参的构造方法,最好再定义一个无参的。因为实例化对象的时候,不一定会输入参数,那么没有无参的构造方法,再不输入参数,就会出错。
另外构造方法需要使用public来修饰,因为使用private的话,在别的类中无法实例化。