黑马程序员技术交流社区
标题:
构造代码块的问题
[打印本页]
作者:
forDream
时间:
2014-1-31 10:10
标题:
构造代码块的问题
关于构造代码块 在每一个构造函数运行之前,构造代码块都对着两个对象进行统一的共性初始化
我的问题是,对象p2被new出的时候,
是先将属性赋值成构造代码块中再到构造函数赋值,还是直接构造函数赋值
class Test
{
public static void main(String[] args)
{
Person p1 = new Person();//调用控参数构造函数进行初始化
Person p2 = new Person("sssssss", 55);//调用非参数构造函数进行初始化
/*
两个Person对象,分别指定用不同的构造函数进行初始化。个性的初始化
但是,在每一个构造函数运行之前,构造代码块都对着两个对象进行统一的共性初始化
*/
}
}
class Person
{
private String name;
private int age;
//构造代码块
{
name = "zhangsan";
age = 18;
System.out.println("Person code run...");
}
//空参数构造函数
Person()
{
System.out.println("name="+name+"age="+age);
}
//非参数构造函数
Person(String name, int age)
{
this.name = name;
this.age = age;
System.out.println("name="+name+"age="+age);
}
}
作者:
透过生活
时间:
2014-1-31 10:19
构造代码块,对象一建立就运行。而且优先于构造函数。
作者:
zhangchao
时间:
2014-1-31 21:26
赋值顺序是这样的:
p2 = new Person("sssssss", 55);
属性的值首先会为:
name = "zhangsan";
age = 18;
接下来值会为:
name="sssssss";
age = 55;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2