构造方法的作用
构造方法是用来初始化对象内部状态的特殊方法。
public class Test{
public static void main(String[] args){
Test t=new Test(); //Test()是构造方法 构造方法主要用于实例化对象
//当程序员在类中没有定义构造方法的时候,系统会默认创建一个无参的构造方法
}
}
构造方法是用来初始化对象的 是创建对象的根本 没有构造则无法创建对象 可以使用构造方法简化给属性赋值过程。
构造方法的定义
语法;
修饰符]方法名([参数列表]){ //构造方法名必须和类名一致。
方法体;
}
eg:
public class Test {
//无参的构造方法
public Test(){
System.out.println("你创建了一个对象");
}
//带参数的构造方法
public Test(int a){
System.out.println(a);
}
public static void main(String[] args) {
Test t=new Test(); //Test()是构造方法 构造方法主要用于实例化对象
//当程序员在类中没有定义构造方法的时候,系统会默认创建一个无参的构造方法
Test t1=new Test(5);
}
}
构造方法的特点
构造方法名必须和类名一致
构造方法没有返回值 不能写void
构造方法不能被程序员显示调用 //显示调用 p.tell();
java中每个类至少有一个构造方法
java的一个类中如果程序员没有显示定义构造方法 系统提供一个默认为空的构造方法
java的一个类中如果程序员显示定义了构造方法 系统不会再提供默认为空的构造方法
构造方法的调用
一个构造方法中调用其他 重载的构造方法,使用this参数 列表的形式调用 系统会自动根据参数列表选择对应的构造方法。
注意:
在构造方法中调用其他构造方法 this必须位于第一位
不能再构造方法外的其他方法内调用构造方法 不能再普通方法和静态方法内直接调用构造方法。
在一个构造中只能使用this调用一个构造方法
eg;
public class Person {
public String name;//姓名
public int age;//年龄
public String sex;//性别
public Person(){
System.out.println("haha");
}
public Person(String name,int age){
this();//在构造方法中调用构造方法需要使用this(),this必须放在第一行,this只能出现一次
this.name=name;
this.age=age;
}
public Person(String name,int age, String sex){
this(name,age);
this.sex=sex;
}
public static void main(String[] args){
Person p1=new Person("张三",18,"男");
System.out.println(p1.name+" "+p1.age+" "+p1.sex);
}
}