关于对对象初始化的疑问

mymoto 2003-01-25 06:23:53
总是看到对对象进行初始化的语句,那什么语句才是对对象进行了初始化呢?初始化是做什么的呢?为什么一个空的构造函数就可以对对象初始化呢?
...全文
33 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyaning_ruby 2003-01-30
  • 打赏
  • 举报
回复
即使构造函数是空的。他也会做一系列的事情,比如未当前对象分配内存空间等.
orswanic 2003-01-26
  • 打赏
  • 举报
回复
我觉得就初始化问题《java编程思想》讲得挺清楚的,尤其是在类中存在静态类型的情况,看一下对这方面的概念就会了解了。
danceflash 2003-01-25
  • 打赏
  • 举报
回复
我的理解:
不管什么样的构造函数都必须遵守如下的规定:
第一句不是"super();"就是"this();",当然括号中是可以带参数的
而对象的初始化可以理解为就在super()语句的前后
构造一个对象的时候,首先要做的不是调用构造函数,而是分配内存
之后对成员变量进行默认初始化,即:基本类型赋值为0或者false,引用赋值为null
然后才是调用构造函数,在执行完super()之后,会开始进行成员变量的赋初值

一个空的构造函数事实上可以理解为一个只含有这样一条语句"super();"的构造函数,因此,它依然会对成员变量进行默认初始化操作
mymoto 2003-01-25
  • 打赏
  • 举报
回复
我晕,你俩别灌了,帮忙解决问题啊
study_body 2003-01-25
  • 打赏
  • 举报
回复
to 楼上,偶没有怪你啊!呵呵
teddy_huang 2003-01-25
  • 打赏
  • 举报
回复
我说我自己呢,莫怪莫怪,真的
study_body 2003-01-25
  • 打赏
  • 举报
回复
to teddy_huang(生活多美好,睡觉)
偶可没有灌水的意思,实事求是嘛!这可是前辈领导人说过的啊!
yunxiang 2003-01-25
  • 打赏
  • 举报
回复
我也来吓说几句。其实我觉得就是把class里的属性服出直而已。

因为在建立对象的时候(因为同一个类的对象之间是有差异的)所以一般要在

class里加一些方法,让对象的属性服一个它所需要的直。

eg:


class p{
public i;
void(int p){i=p;}

public static void main(String[] args){

p a1=new p(7); //当我们需要i等于7时就这样初始化
p a2=new p(8); //等我们需要i等于8时就这样初始化
}

}




teddy_huang 2003-01-25
  • 打赏
  • 举报
回复
实践证明,实践是检验真理的唯一标准,有点灌水嫌疑哦,呵呵
study_body 2003-01-25
  • 打赏
  • 举报
回复
自己实验一下不就知道了。实践是检验真理的唯一标准,呵呵
mymoto 2003-01-25
  • 打赏
  • 举报
回复
每个对象如果不写构造函数的话,都会被赋予默认的default构造函数,那还会有没有被初始化的对象吗?不会产生这样的错误吧
teddy_huang 2003-01-25
  • 打赏
  • 举报
回复
学习ing...
建议仔细研究一下jvm specification
study_body 2003-01-25
  • 打赏
  • 举报
回复
偶没有研究过,瞎说几句,偶觉得初始化主要做下面几件事情
1、调用对象的构造函数
2、对对象中的属性(成员变量)进行初始化(如果没有初始化)
3、对对象中的方法进行注册(我觉得)
4、返回对象句柄

以上纯属瞎说,呵呵

62,614

社区成员

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

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