4.6对象构造

2019-03-14  本文已影响0人  十六只猴子王

重载

如果多个方法有相同的名字、不同的参数,便产生了重载。编译器通过用各个方法给出的参数类型与特定方法调用所使用的值类型进行匹配挑选出相应的方法,这个过侧过程叫做重载解析

indexOf(int)
indexOf(int,int)
indexOf(String)
inderOf(String,int)

默认域初始化

如果在构造器中没有显示的给域赋予初始值,就会被自动的赋值为默认值:数值为0,布尔值为:false,对象引用为null

无参构造器

很多类都包含一个无参构造器函数,对象由无参构造器创建时,其状态会设置为适当的默认值

显示域初始化

通过承载类的构造方法,可以采用多种形式设置类的实例域的初始状态,确保不管怎样调用构造器,每个实例域都可以被设置为一个有意义的初值、

class Employee
{
  private static int nextId;
  private int id = assignIg();
  private static int assignId(){
    int r = nextId;
    nextId++;
    return r;
}
}

参数名

通常参数用单个字符命名但这样做有一个缺陷:只有阅读程序才能了解参数的含义
可以在每个参数前面加一个前缀

public Employee(String aName, double aSalary)
{  name= aName;
  salary= aSalary;
}

参数变量同样的名字将实例域屏蔽起来

调用另一个构造器

如果构造器的第一个语句形如this(...)这样的狗在其将调用另一个类的另一个构造器
采用过这种方式使用this关键字非常有用,这样对公共的构造器代码部分只编写一次即可

初始化块

初始化数据有的方法:
1.在构造器中设置值
2.在声明中赋值
3.初始化块

static{
Ramdom generator = new Random();
nextId = generator.nextInt(10000);
}

对象析构域finalize方法

析构器方法:其中放置一些对象不在使用时需要执行的清理代码
java有自动垃圾回收装置,不需要人工回收垃圾,所以java不支持析构器

上一篇下一篇

猜你喜欢

热点阅读