猿问

Java创建对象中;小白低级的疑惑;望各位大佬多多指教!

Person p = new Person();

new Person();这句话中new Person;是在创建对象;()只是在创建对象时附带的调用构造;这样理解对吗;对象是真实存在的;话虽然那么说new了一个对象;那是实例化的一个过程;过程完了之后那个对象的实例又在哪呢;

Person p 是申明一个引用;引用就是个指针;我随意申明个指针指向对象也可以的.可是不行;为什么?

Person 准确的说是自己创的抽象的数据类型;而不是抽象类;对吧!

明月笑刀无情
浏览 626回答 10
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 构造函数的作用,但赋予它姓名属性不代表赋予了它姓名,有可能这个阶段还没有给它起具体的名字)。

LEATH

通过调用构造函数来创建一个对象.. 你可以把new当成申请一块内存空间.这时这个内存是啥也么有的.然后调用构造函数来初始化这块内存

MYYA

构造函数初始化是不是在描述对象;构造对象;让其体现出来

慕无忌1623718

@小梁丶: 看不懂.就是弄一块内存.然后将这个内存初始化为对应的类型.

达令说

@吴瑞祥: 就是调有参构造是创建一个对象时就用属性描述对象;而调用无参构造是创建一个对象;之后在用属性描述对象;

偶然的你

@吴瑞祥: 那块内存就是存储对象的属性是吗?

四季花海

@小梁丶: 这块内存怎么用学问就大了.我是不会的.

Qyouu

@吴瑞祥: 按照刚刚接触对象;可以那样理解吗?

繁花如伊

@小梁丶: 刚入你要学的不是这个..是语法. 你先把语法学会了.再来想这些. 比如:基类的泛型静态成员.在不同的泛型实现中.是不是不同的成员? 想学内存中的具体实现.就去从C/c++开始学.

回首忆惘然

@小梁丶: 对象的属性会放在对象的地址空间里,但方法,静态变量这些会放到类的公共空间里,所有这个类的实例对象公用
随时随地看视频慕课网APP

相关分类

Java
我要回答