构造函数的作用:
用于在创建对象时对对象进行初始化。
构造函数的写法及生成:
- 若未自定义构造函数,那么编译器将为你生成一个默认无参数构造函数
-
若自定义了构造函数,不论其有参数与否,默认的空构造函数都被覆盖
get(),set方法与构造函数的区别:
- 构造函数仅在对象初始化时运行一次,即仅在对象生命周期中运行一次,
- 一般方法在对象生命周期任意时刻都可以调用
构造代码块
-
先于所有构造函数执行
- 在对象生成时执行,
构造代码块的作用:
同一个类中,多个构造函数内有很多相同的操作,应该考虑使用 构造代码块来提取这些冗余的代码,
class Person
{
String name;
//构造函数 函数名与类同名,无需定义返回值类型
Person()
{
System.out.println("I'm coming ");
}
//构造函数重载
Person(String name)//参数是局部变量,仅对本函数内起作用
{//
this();//构造函数间相互调用时的写法,必须放在此构造函数的第一行,为了保证自定义的赋值在后面起作用
this.name=name;//左边是成员属性名,右边是局部变量名
//当 写作name=name时,name先在本局部作用域中寻找,若找到,则不再向外搜寻,所以打印结果显示null
//this 代表当前对象
//speak();
}
//构造代码块
{
System.out.println("wuwuwu…………");
}
void speak()
{
System.out.println("His name is "+this.name);
}
}
class PersonConstructor
{
public static void main(String[] args)
{
//对象产生时,便执行构造函数,因而构造函数可为对象初始化
Person p=new Person();
Person p2=new Person("Tom");
p2.speak();
}
}