社区
Java SE
帖子详情
各位大侠 求教构造方法的作用
a343502208
2010-11-03 09:38:20
大侠们,我学习java也已经1个多月了,每天坚持看教程3小时左右,看的过程中也写过一些小程序,但是那些在你们眼里都是一些灰尘,看不到一样. 所以现在我想请教一下构造方法的作用和理解, 构造方法的重载,我明白,分无参构造,和有参构造,参数的类型什么的也知道,但是一到让我用的时候我就犯傻了,也不知道什么时候用,看了好多百度和google的大哥,大姐们发的帖,知道是和new关键字一起用的,但是脑子笨,不知道什么时候用,作用是什么,还请各位大侠指点一下!
...全文
728
15
打赏
收藏
各位大侠 求教构造方法的作用
大侠们,我学习java也已经1个多月了,每天坚持看教程3小时左右,看的过程中也写过一些小程序,但是那些在你们眼里都是一些灰尘,看不到一样. 所以现在我想请教一下构造方法的作用和理解, 构造方法的重载,我明白,分无参构造,和有参构造,参数的类型什么的也知道,但是一到让我用的时候我就犯傻了,也不知道什么时候用,看了好多百度和google的大哥,大姐们发的帖,知道是和new关键字一起用的,但是脑子笨,不知道什么时候用,作用是什么,还请各位大侠指点一下!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiejianwu_7610
2010-11-04
打赏
举报
回复
初始化
public class Point{
private int x ;
private int y ;
public Ponint(int x ,int y){
this.x = x ;
this.y = y ;
}
}
Point p = new Point(3,4);
有几个动作
Point p 是在栈空间中申请一个Point的变量(空间)
new Point(3,4)产生一个对象并把对象存放在堆中 并返回对象在堆中的地址 赋给变量 p
quanquanfly
2010-11-04
打赏
举报
回复
初始化用的..
liukelin
2010-11-04
打赏
举报
回复
构造方法是对象被创建时初始化对象的成员方法,它具有和它所在的类完全一样的名字。构造方法只能有入口参数,没有返回类型,因为一个类的构造方法的返回类就是类本身。构造方法定义后,创建对象时就会自动调用它,对新创建的对象分配内存空间和初始化。在 Java 中,构造方法也可以重载,当创建一个对象时, JVM 会自动根据当前对方法的调用形式在类的定义中匹配形式符合的构造方法,匹配成功后执行该构造方法。
如果省略构造方法的定义,则 Java 会自动调用默认的构造方法。但是如果定义了构造方法,则系统不再提供默认的构造方法。默认的构造方法没有任何参数,不执行任何操作。实际上,默认的构造方法的功能是调用此类的父类中的不带参数的那个构造方法,如果父类中不存在这样的构造方法,编译时会产生错误信息。 Object 是 Java 中所有类的根,定义它的直接子类,可以省略 extends 子句,编译器会自动包含它。
构造方法的方法体定义中,可以调用此类的父类的构造方法,也可以调用此类的另一个构造方法,这种调用必须由方法体的第一个语句完成。但是,构造方法的调用不允许通过方法名,所以,用 this 代表本类中的一个构造方法,而 super 则代表了其父类的一个构造方法。需要注意的是,在构造函数中,如果 this 语句,则必有 super 语句,要么自己编写 super 语句,要么由系统自动调用 super 语句。而且 super 语句调用的总是其父类的缺省构造函数,即无参的那个构造函数,如果其父类中没有缺省的构造函数,则编译出错。所以,子类如果有多个构造函数的时候,父类要么没有构造函数, 让编译器自动产生,那么在执行子类构造函数之前先执行编译器自动产生的父类的缺省构造函数;要么至少要有一个显 式的缺省构造函数可以让子类的构造函数调用。
另外还需要注意的有: (1) 对象是由 new 运算符创建的,且在任何构造函数执行之前就已经创建完毕了; (2) 构造函数的执行总是 “ 向上 ” 的:而且总是先执行完父类的构造函数; (3) 显式初始化语句总是先于构造函数语句,但后于 super() 或 this() 。
whut0802
2010-11-04
打赏
举报
回复
加油加油加加油
mengyalizuopeng
2010-11-04
打赏
举报
回复
类初始化的时候用。。。。
TearsStoneJava
2010-11-04
打赏
举报
回复
new 及实例化!
对象-->实物-->对应的属性!
stalley
2010-11-04
打赏
举报
回复
我想你肯定知道 java 是面向对象的吧
1 在java里万物皆对象,那么对象是怎么来的? 简单的一点的说
就是通过 构造方法 创建的 ,目前阶段 你就认为构造方法是帮我们创建对象的
2:再举个例子,有些东西与生俱来就会有一些特点,比如说,在你出生前你家长就给你起了名字,在你出生前你的性别其实就已经定下来了,那么在java中的构造方法的参数你也暂时可以理解为在创建这个对象时就已经有的特征
3: 向什么堆、栈啊 什么的 你暂时先不去考虑 等你用的多了 自然就明白了
tianhandigeng1498
2010-11-03
打赏
举报
回复
说到new就不得不说一下对象,对象有三个特征:状态、行为和标志。就好比一个人一样,你有名字,你可以干你想干的事,你也有你的状态:你是死的还是活的(开玩笑了),对象就是Java世界中的人,不过上面说是的只是从单个的角度出发的,如果从宏观来看,像你一样,比如你在我们现实世界当中你是医生,那么你就有医生的特性,干医生该干的事,但是不仅仅只有你一个医生,世界上还有很多的医生。拿到java的世界里,医生就是一个类,它可以产生许许多多的医生对象,你就是其中的一个医生对象,你有着医生所有的特性,那么你这个医生对象是怎么产生的,就是通过构造函数产生的,为什么叫它构造函数我想也是这个道理,那为什么要用new呢?我们知道构造函数是一个特殊的函数,但是如果你仅仅是像其他函数一样使用它,调用它,那它还有什么意思了,这时候new标识符出现了,new Doctor() 意思就是:用Doctor构造给我创建一个新的医生出来,注意,是new,新的,为什么是新的?想想你是在造人,总之自己去理解了,就说这么多了
sp900409
2010-11-03
打赏
举报
回复
class a{
a(){}
}
你如果有构造函数(包括有参或无参),系统就不会给你创建构造函数了
如果没有系统就会给你创建一个无参的构造函数
lost_guy_in_scut
2010-11-03
打赏
举报
回复
[Quote=引用 5 楼 leehomwong 的回复:]
那还是学的不够多,不熟悉。。
[/Quote]
嗯嗯。构造函数就相当于你要初始化的一些东东。
例如你 A a=new A("liming");
那么他就就会调用A(String a) 这个构造函数,然后就是把liming传进去,相当于把a初始化 名字是liming
24K純帥
2010-11-03
打赏
举报
回复
那还是学的不够多,不熟悉。。
贪睡的兔子
2010-11-03
打赏
举报
回复
拼命学就是了
我每天看书3小时,看视频写代码6小时,学java快一个月了
亲爱的-爹爹
2010-11-03
打赏
举报
回复
自己多写代码就明白了
火龙果被占用了
2010-11-03
打赏
举报
回复
比如说,类中有些字段值必须在对象初始化的时就得设定的时候,可以使用有参构造。为了这些数据不被修改,应该将这个字段的 set 方法置为 private 或者去掉。
majy
2010-11-03
打赏
举报
回复
当一个类生成一个object,你的这个object如果被任何方法调用之前,就要先生成一些内容的话,那就做个构造方法,如果不需要,你就不用做什么构造方法,编译器会给你生成默认的不做任何事情的构造器的。
C# For Unity系列之入门篇
你想当“李逍遥”式的“
大侠
”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!...
WEB开发文档2 总结
程序集
作用
是什么?他是怎么解决DLL版本问题?COM应该是没有版本问题的呀 xp home 没有IIS吗?该怎么办 Visual Studio.Net 2003 现在有没有中文版? vs2003安装问题!! vs.net2002没办法调试,老是出错,怎么解决? ...
自画收集
楼主jbz(虚心
求教
)2003-02-11 17:42:23 在 C++ Builder / 基础类 提问季版主,感谢您在这个帖子里的指点, http://expert.csdn.net/Expert/topic/1327/1327619.xml 我已经解决了大部分的界面乱码问题(非中文...
VC++中可能遇到的问题
T 如何用程序控制电源管理设置 Q 我们知道在电源选项 属性 里面可以设置 关闭监视器 1...5分钟之后 请问各位大虾,应该怎么办?是不是要调用API?如果是,应该调用什么函数?另外补充说明:如果是调出控制面板让用户自
Microsoft .Net Remoting系列专题之一:.Net Remoting基础篇
如前所述,WellKnown模式在客户端创建对象时,只能调用默认的构造函数,上面的代码就说明了这一点,因为GetObject()方法不能传递构造函数的参数。而客户端激活模式则可以通过自定义的构造函数来创建远程对象。 ...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章