Person p = new Person();
new Person();这句话中new Person;是在创建对象;()只是在创建对象时附带的调用构造;这样理解对吗;对象是真实存在的;话虽然那么说new了一个对象;那是实例化的一个过程;过程完了之后那个对象的实例又在哪呢;
Person p 是申明一个引用;引用就是个指针;我随意申明个指针指向对象也可以的.可是不行;为什么?
Person 准确的说是自己创的抽象的数据类型;而不是抽象类;对吧!
10 回答
不负相思意
TA贡献1777条经验 获得超10个赞
你问题问的很混乱...
- Person 准确的说是自己创的抽象的数据类型;而不是抽象类.这句话前面是对的;Person是你自定义的类,类可以看作一种数据类型;但后面这句,你扯出了另外一个概念(可能你是无意的),抽象类是不能实例化的(不能new)。
- Person p 是申明一个引用;引用就是个指针;我随意申明个指针指向对象也可以的.这句话也没错。可是不行,为什么? 因为p声明的是Person类型,只限于指向Person及其子孙类。就像int i= 5;可以i=1;i=2;但不可以i="hello world".
- new Person(),这个地方不知道你看什么书看来的,我是没见过new Person和()分开说的。这个地方就是对象正式开始实例化了。这句话执行完就意味着内存的某个地方有一个实实在在的Person对象(对象就是实例),它有具体的名字、年龄...这些属性,也有say“你好”...这些方法(赋予它姓名、年龄、say“你好”等等这些都是 new 构造函数的作用,但赋予它姓名属性不代表赋予了它姓名,有可能这个阶段还没有给它起具体的名字)。
繁花如伊
TA贡献2012条经验 获得超12个赞
@小梁丶: 刚入你要学的不是这个..是语法.
你先把语法学会了.再来想这些.
比如:基类的泛型静态成员.在不同的泛型实现中.是不是不同的成员?
想学内存中的具体实现.就去从C/c++开始学.
添加回答
举报
0/150
提交
取消