各位大侠 求教构造方法的作用

a343502208 2010-11-03 09:38:20
大侠们,我学习java也已经1个多月了,每天坚持看教程3小时左右,看的过程中也写过一些小程序,但是那些在你们眼里都是一些灰尘,看不到一样. 所以现在我想请教一下构造方法的作用和理解, 构造方法的重载,我明白,分无参构造,和有参构造,参数的类型什么的也知道,但是一到让我用的时候我就犯傻了,也不知道什么时候用,看了好多百度和google的大哥,大姐们发的帖,知道是和new关键字一起用的,但是脑子笨,不知道什么时候用,作用是什么,还请各位大侠指点一下!
...全文
728 15 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
自己多写代码就明白了
  • 打赏
  • 举报
回复
比如说,类中有些字段值必须在对象初始化的时就得设定的时候,可以使用有参构造。为了这些数据不被修改,应该将这个字段的 set 方法置为 private 或者去掉。
majy 2010-11-03
  • 打赏
  • 举报
回复
当一个类生成一个object,你的这个object如果被任何方法调用之前,就要先生成一些内容的话,那就做个构造方法,如果不需要,你就不用做什么构造方法,编译器会给你生成默认的不做任何事情的构造器的。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧