黑马程序员技术交流社区
标题:
【已解决】构造函数问题
[打印本页]
作者:
郑文博
时间:
2012-5-31 11:33
标题:
【已解决】构造函数问题
本帖最后由 郑文博 于 2012-6-1 09:38 编辑
希望大家能不吝说说自己对构造函数的理解,作为初学者对这个比较懵。希望能够找到一个好的方法去理解记忆。
比方说对它的初始化特点吧,我就有点不理解了,每当一创建对象就会被调用一次,那需要创建对象又不想去调用这个构造函数的初始化该怎么做呢。
毕老师讲的很清楚,只是一段时间不想当再提起时头脑又是很懵。。然后又得回去重看视频。我想听听大家有什么好的方法,谢谢。
作者:
凡延海
时间:
2012-5-31 12:09
构造函数呢就是为 创建实例而设计的,要创建实例就必须调用构造函数,构造函数可以是默认的也可以是自己写的。
我举了个例子:
class Person
{
String name;
int age;
Person()
{
}
Person(String name,int age)
{
this.name=name;
this.age=age;
}
}
复制代码
这个里呢我写了Person()这个就是默认的构造函数,如果你不写的话系统就默认调用这个,如果你显示的写构造函数了则系统就不会给我们在提供默认构造函数。
作者:
田建
时间:
2012-5-31 12:56
建议把静态代码块,构造代码块和构造函数对比起来理解,那样更便于记忆:
他们三都是用于初始化,但又都有差别:
静态代码块(可以用来验证类是否加载):随着类的加载而加载,只执行一次,并优先于主函数,一般用于类的初始化。
构造代码块(定义对象共性初始化内容):给对象进行初始化,对象一建立,就运行,而且优先于构造函数执行,给所有对象进行统一初始化。
而构造函数是给对应对象进行初始化,如果不写构造函数,会有一个默认的空参数的构造函数,用于给对象初始化,但若自己写了构造函数,便不再有,因而一般在复写构造函数时都写一个空参数的构造函数,以免出错!
我以前也不太清楚,这么总结了之后,感觉还比较清晰,希望帮到你!
作者:
丰亚彬
时间:
2012-5-31 13:13
既然是初学的话,关于复杂的就不说了,你抛开代码角度想想就行,关键是理解思想
作为类的构造函数它的最主要作用就是对类中成员初始化,举个例子说:你有一个Person类代表人
那么你实例化出来(造出来)的时候应该有名字吧,这是必须的,那么你就应该在构造函数的部分里添加你创造这个人的名字。
希望对你理解有所帮助
作者:
李天甲
时间:
2012-5-31 13:32
回答这个问题可能比较啰嗦。
你
定义一个类
的时候要定义一个类的
属性
和
方法
。而这些
属性和方法
在书写
类
的时候只是一个
概念
,需要我们通过new形成
实例
。这个时候往往需要初始化。
就如同汽车类定义的时候会定义轮子和发动机,这是一个
概念
,汽车会跑的方法也是一个概念,这些都是在类范畴。。
当定义的汽车类生成
实例
时,也需要做
一些事情
。比如
属性
的赋值
操作
,某些初始化
方法
的
执行
等等。比如汽车下线开动之后发动机会转,婴儿出生后会哭一样。
这时候,谁来命令汽车发动机启动运转,谁来命令出生的婴儿会哭,就有了一定的初始化的方法,一般情况这些东西都会写在“
构造函数
”里面。
我的理解“
构造
函数”中的“构造”,并不是
“构造”的
并不是类,而是“构造”这个类new出的
实例
中的一些初始化特性。而
生成实例
的过程包含
构造过程
,所以会有默认的构造函数。当然,还有构造代码块等别的方法,也可以在特殊需求的时候达到构造的效果。
说的有点别扭,请各位同学和老师指正。
作者:
whocases
时间:
2012-5-31 21:01
说的直白点,构造函数主要就是给对象初始化的,这是实际开发中最长用的!你定义一个类实例,或者new一个类实例的时候,都会隐式地调用构造函数,构造函数可以重载的,你好好看看毕向东将的视频,很明白的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2