美文网首页
4.6对象构造

4.6对象构造

作者: 十六只猴子王 | 来源:发表于2019-03-14 17:04 被阅读0次

重载

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

  • 完整的描述一个方法需要指出方法以及参数类型,这叫做方法的签名
    例如:String类有4个称为indexOf的公有方法
    他们的签名是
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值是隐私参数,也就是构造器 的对象

调用另一个构造器

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

初始化块

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

  • 调用构造器的具体处理步骤:
    1.所有数据与被初始化为默认值
    2.按照在类声明出现次序,一次执行所有域初始化语句和初始化块
    3.如果构造器第遗憾调用了第二个构造器,则执行第二个构造器的主体
    4.执行这个构造器的主体
  • 如果对象的静态域进行初始化的代码比较复杂,那么可以使用静态的初始化块
  • 将代码放在一个块中,并标记关键字static
static{
Ramdom generator = new Random();
nextId = generator.nextInt(10000);
}

对象析构域finalize方法

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

  • 可以为任何一个类添加finalize方法,finalize方法将在垃圾回收器清楚队形之前调用,实际中不依赖finalize方法回收任何短缺的资源,这是因为很难知道这个方法什么时候才能调用
  • 如果某个资源需要再使用完毕后立即被关闭,那么就需要有人工来管理。对象用完时可以应用一个close方法来完成相应的清理操作

相关文章

  • 4.6对象构造

    重载 如果多个方法有相同的名字、不同的参数,便产生了重载。编译器通过用各个方法给出的参数类型与特定方法调用所使用的...

  • js构造函数

    构造函数 系统自带的构造函数 对象和构造函数是两回事 对象是通过实例化构造函数而构造的对象实例 自定...

  • 4.2使用预定义类

    对象与对象变量 要想使用对象,就必须构造对象,并指定其初始状态。 使用构造器(constructor)构造新实例构...

  • 对象构造

    重载 如果多个方法或构造器有相同的方法名称、不同的参数,便使用了重载。 方法签名 方法签名:方法名+参数类型 默认...

  • 构造对象

    new new运算符接受一个函数F及其参数:new F(arguements...)。这一过程分成三步: 创建类的...

  • 原型链

    一、创建对象的几种方法 对象字面量 Object构造函数 构造函数 Object.create 二、原型对象、构造...

  • 12.如何查找构造函数和原型的属性

    构造函数.prototype 查看构造函数的原型属性实例对象.ptoto 查看实例对象的构造函数的原型实例对象...

  • c++学习笔记第四天

    一、拷贝构造器 由己存在的对象,创建新对象。也就是说新对象,不由构造器来构造,而是由拷贝构造 器来完成。拷贝构造器...

  • 原型概念

    神秘对象称与构造函数 神秘对象就是构造函数的 "原型属性"简称原型 (构造函数的原型) 神秘对象与构造函数所创建出...

  • 对象的创建与继承

    创建对象 工厂模式 => 构造函数模式 => 原型对象模式 => 构造函数模式+原型对象模式 工厂模式 构造函数模...

网友评论

      本文标题:4.6对象构造

      本文链接:https://www.haomeiwen.com/subject/ivrcmqtx.html