javaSE 构造方法

来源:互联网 发布:c语言调用windows api 编辑:程序博客网 时间:2024/06/01 08:08

构造方法的作用

构造方法是用来初始化对象内部状态的特殊方法。

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 Stringname;//姓名

public int age;//年龄

public Stringsex;//性别

public Person(){

System.out.println("haha");

}

public Person(Stringname,int age){

this();//在构造方法中调用构造方法需要使用this(),this必须放在第一行,this只能出现一次

this.name=name;

this.age=age;

}

public Person(Stringname,int age, Stringsex){

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);

}

}