黑马程序员技术交流社区
标题:
关于构造方法的理解
[打印本页]
作者:
万青
时间:
2013-11-5 17:52
标题:
关于构造方法的理解
构造方法主要用于初始化实例的状态 构造发放只有在创建实例时被隐含调用
疑问 构造方法是程序一开始就执行能还是等实例建立是被调用才执行?
什么是隐含调用
构造方法初始化实例的状态到底有什么作用呢?
谢谢大家里
作者:
kuoge110
时间:
2013-11-5 18:03
在new 的时候就调用了
初始化实例的状态 就是在刚开始的时候就可以在构造函数内对实例进行初始化(如:对成员变量的赋值,调用函数等)
不用再new 完之后,在对实例赋值
类初始化时构造函数调用顺序:
(1)初始化对象的存储空间为零或null值;
(2)调用父类构造函数;
(3)按顺序分别调用类成员变量和实例成员变量的初始化表达式;
作者:
零下五度的水
时间:
2013-11-5 18:09
比如 Object obj = new Object(参数);
这个参数就是指构造方法的参数,让你指定一个构造方法,然后创建实例并调用这个构造方法
隐含调用就是说这是创建实例后就会自动调用的方法,不需要你手动调用,你也不能阻止它被调用
作用通常是给字段赋值
常见的比如:Person p = new Person("张三", 29);
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
作者:
aion2013tian
时间:
2013-11-5 19:32
构造代码块在每一次构造对象的开始执行,每构造一次都会执行一次。其与构造函数的区别是构造代码块无论针对所有的对象初始化都会执行,构造函数只会和相匹配的函数一致时才会执行。不管你调用无参构造函数,还是有参构造函数,都会优先执行构造代码块。 构造代码块是给所有对象进行统一初始化。构造代码块中定义的是不同对象共性的初始化内容。
作者:
剑魂
时间:
2013-11-5 23:27
不是程序一开始就执行,new 一个对象时,先会在堆内开辟个空间,分配其一个地址,然后再对内存建立对象的特有属性,并进行默认初始化,int = 0等各种,或者是已有定义进行显示的初始化,然后再调用对象的构造函数,将实参传入,实现初始化操作。
//Person类
class Person
{
String name = "小小";
int age = 30;
Person(String name, int age){
this.name = name;
this.age = age;
}
}
class Test
{
public static void main(String[] args)
{
Person p = new Person("张三",32);
}
}
复制代码
作者:
黄炳期
时间:
2013-11-6 08:58
帖子已重新分类,若仍有疑惑,可重新提问
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2