4.6 构造器

1 重载

同样的方法名,不同的参数,称为重载。

2 属性的默认值

如果你没有在初始化构造器中初始化属性,那么属性会被初始化为0,false或null。

3 无参数构造器

当你调用无参数的构造器,并且这个构造器体内没有初始化属性,那么所有属性会被初始化为默认值。
一旦你显示写出了一个构造器,那么,你必须调用这个构造器才能完成新建对象。如果你没写任何构造器,那么无参构造器就是这个类的构造器,该构造器继承自父类(没有继承则默认继承Object类)。

4 显示初始化

那就初始化呗

5 参数名称

别混用就好了,如果不加this关键字,方法体内部首选参数的名称。

public Employee(String name, double salary)
{
    this.name = name;
    this.salary = salary;
}

6 调用另一个构造器

public Employee(double s)
{
    this("Employee #" + nextId, );
    nextId++;
}

注意,如果要调用另一个的话,必须第一行就调用。

7 初始化块

  1. 在构造器里初始化属性
  2. 在声明变量的时候直接初始化

    下面介绍初始化块进行初始化

“`
class Employee
{
private static int nextId;
private int id;
private String name;
private double salary;

// 初始化块
{
    id = nextId;
    nextId++;
}

public Employee(String n, double s)
{
    name = n;
    salary = s;
}
public Employee()
{
    name = "";
    salary = 0;
}
...

}
下面是调用构造器的步骤
1. 所有数据初始化为默认值0、false、null
2. 按照在类中声明的次序,一次执行所有属性初始化语句和初始化块
3. 嵌套执行构造器

对类的静态属性的初始化可以采用静态初始化块
static
{
Random generator = new Random();
nextId = generator.nextInt(10000);
}

8 对象析构和finalize方法

Java自动对对象回收。
如果你一定要在对象回收时候执行些什么,重写它的finalize方法吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值