java中new的两边啥意思.

来源:百度知道 编辑:UC知道 时间:2024/09/25 01:14:56
A a=new A();
A a=new B();
能不能用通俗的话说下..

A a = new A();
左边:定义变量 a,a 的类型是 A,
右边:给a分配一个内存地址(比如:0xFF98BC),这个内存地址并不是放着一个实实在在的A对象,而是放着另一个内存地址(b),(b)这个内存地址才是A对象在内存中的位置.

这是 "new" 一个对象的全过程.(注:我老师这么说的)

A a = new B();
说明了B是A的子类!其它同上!

如果造一辆车。。

那么类A就是一辆车的图纸,或者说模型

那么new过程,就是在造这辆车。。

造成后,就有一辆车a,

那么如果这辆车可以听歌,假设这个听歌功能是个方法 listen();

那么你可以这样调用听歌功能 a.listen();

靠,够通俗吧

a 表示a 是属于A类型的,就像String s 那么s就表示一个字符串
new A() 表示通过A类的构造方法实例化A类的一个对象

A a=new A(); 表示通过A类的构造方法实例化A类的一个对象并且赋值给a

左边是引用 右边是与它相关联的对象 而NEW就是实现这个目的
NEW关键字的意思就是“给我一个新对象”
引用就是操纵的标识符 如看电视的遥控器 用遥控器(引用)来操纵电视机(对象)....
从内存分析的话:
A a=new A();
stack 栈 存放局部变量

heap 堆 动态生成内存 (new出来的东西)

左边在stack(栈)内存里会产生一块内存区域,同时在heap里(堆)也会产生一块内存区域
引用类型的会产生2块内存区域 而基本类型(如 int s=9;)就一块内存区域
右边的NEW... 其实是引用指向了新创建的对象 就是在stack里的内存区域 用个箭头指向 heap里的内存区域 这个箭头其实就是指针 JAVA里没指针 其实也不能完全这么说 JAVA里有隐式指针 其实NEW....就是调用了构造方