黑马程序员技术交流社区

标题: 实例化和初始化是一样的吗? [打印本页]

作者: 李稳023    时间: 2014-2-8 23:33
标题: 实例化和初始化是一样的吗?
有时候看书,同样是以new为关键字.但是视频里说的是实例化,有时候却是初始化.
作者: 流失的温度0    时间: 2014-2-8 23:58
实例化和初始化是两个不同的概念。
比如说一个类。你new了这个类,这就叫做实例化
比如说上课常用的Person类,
Person ps1=new Person();这就是实例化。
而初始化是什么呢,简单说就是赋值
比如ps1.Name="张三",这就叫初始化。
两个不是一个概念。
作者: wushanwow    时间: 2014-2-9 02:06
流失的温度0 发表于 2014-2-8 23:58
实例化和初始化是两个不同的概念。
比如说一个类。你new了这个类,这就叫做实例化
比如说上课常用的Person ...

实例化不一定有赋值动作.
而初始化的意思就是说在实例化后第一次对对象进行一次赋值.
作者: 小王    时间: 2014-2-9 09:27
实例化就是实例一个对象,而初始化就是实例一个对象后的第一次赋值
作者: squilla    时间: 2014-2-9 09:31
实例化就是创建一个对象,初始化就是这个对象的初始值。
作者: 黑马—严守卫    时间: 2014-2-9 09:33
实例化指创造一个类的实例,初始化就是为这个实例成员赋值。

作者: 郭运川    时间: 2014-2-9 09:40
实例化是用new开辟空间创建对象;
初始化是在创建对象的过程中对一些变量和方法进行赋初值的初始化
举个例子:创建个实例对象Person p = new Person();在创建过程中涉及的一些操作
1.因为new用到了Person.class,所以会先找到Person.class文件并加载到内存中
2.执行该类中的Static代码块,如果有的话,给Person。class类进行初始化
3.在堆内存中开辟空间,分配内存地址
4.在堆内存中建立对象的特有属性,并进行默认初始化
5.对属性进行显示初始化
6.对对象进行构造代码块初始化
7.对对象进行对应的构造函数初始化
8.将内存地址付给找内存中的P变量
作者: 流失的温度0    时间: 2014-2-9 15:28
wushanwow 发表于 2014-2-9 02:06
实例化不一定有赋值动作.
而初始化的意思就是说在实例化后第一次对对象进行一次赋值. ...

好的!感谢教诲。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2