java的构造器Constructor的理解

 使用构造器时需要记住:

1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)

2.每个类可以有一个以上的构造器

3.构造器可以有0个、1个或1个以上的参数

4.构造器没有返回值

5.构造器总是伴随着new操作一起调用

6.不添加任何构造器会默认有空的构造器

继承与构造器

使用super调用父类构造器的语句必须是子类构造器的第一条语句

为什么加上super?

Java的构造器并不是函数,所以他并不能被继承,这在我们extends的时候写子类的构造器时比较的常见,即使子类构造器参数和父类的完全一样,我们也要写super就是因为这个原因。

如果子类构造器没有显式地调用父类的构造器,则将自动调用父类的默认(没有参数)的构造器。如果父类没有不带参数的构造器,并且在子类的构造器中又没有显式地调用父类的构造器,则java编译器将报告错误


构造器例程

package com.cpsec.construct;


public class ConstructorTest {

private String name;
private int age;
private int id;

//构造方法
public ConstructorTest(String name,int age ,int id){
//this指向当前对象
this.age = age;
this.name = name;
this.id = id;
}

public void print(){
System.out.println("姓名  "+name+"年龄  "+age+"学号  "+id);
}

public static void main(String[] args) {
//利用自己添加的构造方法
//简化了代码,简化了在实例化事的赋值操作
ConstructorTest ct = new ConstructorTest("ChaosJu",22,591);
ct.print();
ConstructorTest ct2 = new ConstructorTest("利用构造函数简化代码",22,591);
ct2.print();
}
}

比较的例程

package com.cpsec.construct;


public class ConstructorTest2 {

private String name;
private int age;
private int id;
//空的构造方法,可以省略  ,编译器会默认添加(如果没有其他非空参数的构造器)
    public ConstructorTest2(){
  
   }
public void print(){
System.out.println("姓名  "+name+"年龄  "+age+"学号  "+id);
}

public static void main(String[] args) {
//利用自己添加的构造方法
//简化了代码,简化了在实例化事的赋值操作
ConstructorTest2 ct = new ConstructorTest2();
ct.name = "ChaosJu";
ct.age = 22;
ct.id  = 591;
ct.print();
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值