Java构造函数的本质作用
构造函数的本质作用是初始化对象、初始化实例变量和分配初始值。创建对象时使用new关键字,而不是创建对象。 使用new关键字时,对象的堆内存中会打开内存,构造函数只需初始化该内存并为实例变量指定初始值即可。 在未分配初始值之前为默认值。 查看代码中的构造函数和编译后的构造函数是不一样的。 编译后的构造函数包含了更多的内容。
非静态代码块通常初始化实例变量。 编译后,非静态代码块中的代码将提取到构造函数中,初始化实例变量的代码也将提取到构造函数中。 构造函数中的数组顺序与源代码中的顺序一致,位于构造函数中原始代码的前面。
构造函数负责初始化实例变量。
示例代码:
packagecom.usoft7;
//*
*CreatedwithIntelliJIDEA。
*用户:资产管理系统
*Date:14-3-29
*Time:上午1:35
* tochangethistemplateusefile|settings |文件模板。
*/
classUser{
公共字符串名称;
{
System.out.println (非静态代码块---1);
}
公共信息;
用户()。
system.out.println(user无参结构);
}
用户(string name,intage ) {
this.name=name;
system.out.println('name赋值完成);
this.age=age;
system.out.println(age赋值完成);
System.out.println ('初始化完成----';
}
{
System.out.println (非静态代码块---2);
}
字符串获取名称
returnname;
}
void set name (字符串名称)。
this.name=name;
}
intgetAge () }
返回age;
}
语音设置(intage ) {
this.age=age;
}
}
类人员{
publicUseru=newUser (;
公共useruser=new user (' helo ',12 );
公共字符串屏幕;
人员()。
}
用户获取器
返回用户;
}
语音集(用户)。
this.user=user;
}
字符串获取时间表
返回屏幕;
}
垂直方向(字符串方向)。
this.school=school;
}
}
packagecom.usoft7;
公共类测试{
publicstaticvoidmain (string [ ] args ) {
人员=新人员(;
system.out.print ln ('=====' p.u.get age ) );
system.out.print ln ('=====' p.u.getname ) );
system.out.print ln (-----------);
system.out.print ln ('=====' p.user.get age ) );
system.out.print ln ('=====' p.user.getname ) );
}
}
打印结果、
非静态代码块---1
非静态代码块---2
用户无参结构
非静态代码块---1
非静态代码块---2
name赋值完成
age赋值完成
初始化完成----
========0
========null
--------------------
========12
========helo
附件: javac命令使用utf-8编码
e :test-Javahh javac-encoding utf-8 test.Java
总结:在这个例子中,可以很好地理解构造函数的作用、静态块和非静态块。
了解实例变量的初始化(先分配内存再分配值) )
===============end========================================================================