构建器(constructor,如何构建) 3W what? why? 什么? 什么?为什么?怎么用? 注意事项?
What? 是什么? 构造函数(也称为构造函数)本身是一种特殊的方法。 (但是,与方法没有什么大的关系。 为了不与方法混淆,习惯上将其称为构造函数。 )仅在实例化了新对象时调用。
Why? 为什么要使用它:为什么要使用构造函数? 为了实例化新的对象,需要使用关键词new进行,但是除了new这个关键词以外,在对象的实例化时有可能为初始化做好操作准备,此时需要构造函数方法的支持。 所以使用生成器就是想实现那个作用。
生成器的作用是:1.创建类的对象
2 .初始化对象属性
构造函数特征
1 .与类同名
2 .不声明返回类型。 (与声明为void不同)
不受static、final、synchronized、abstract和native限定,无法通过return语句返回值
什么? 要说怎么用,需要一定的格式。 不能乱用。 必须定义格式
构造函数声明格式:权限限定符类名(形状参数列表,…) ) (请注意,构造函数没有返回类型) )。
方法的声明格式权限修饰符返回值的数据类型方法名称(形状参数列表,……) )。
程序语句
[return常量或变量
}
构造函数和方法之间的差异: 1根据声明定义的格式,构造函数没有返回类型,方法具有返回类型
2调用的时机不同:构造函数:在实例化新的对象(new )时直接调用,并且只调用1次,是与对象的制作一起执行的操作
常见的方法是在生成实例化对象后,在“对象.方法”中多次调用它
在构建public TriAngle ()//时,必须构建无参数的构造函数
}
公共运输(double h,double h ) {
base=b;
height=h;
}
公用三个)。
三个
}
公共人员(string name,int age ) {
this(name,age,null );
//this.name=name; this.age=age; this.birthDate=null;
}
2 .说明:
定义类时,如果没有明确声明类的构造函数。 系统提供不自动加入类的构造函数。
如何声明类的构造函数。 格式:权限修饰符类名(形式参数列表) }
在类中定义类的构造函数后,系统将不再提供缺省的无参数构造函数。
类的多个构造函数之间,相互构成重载
总结:班里一定有教练!
3 .关于类中属性分配的优先级:
* 默认初始化- 显式初始化- 生成器初始化- 使用“对象.属性”或“对象.方法”方法为属性赋值
定义类时,可以直接为属性设置默认值,但只有在构建完成时才设置默认值,否则不设置默认值
例如: class Book {
私有字符串=“Java开发”
publicbook{}//title的当前默认值与此构造函数无关
}
在此程序中,只有在整个构造函数完成后,才能将“java开发”字符串的内容真正设置为title属性