为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

明月笑刀无情 2018-12-07 08:21:53
Person p = new Person(); new Person();这句话中new Person;是在创建对象;()只是在创建对象时附带的调用构造;这样理解对吗;对象是真实存在的;话虽然那么说new了一个对象;那是实例化的一个过程;过程完了之后那个对象的实例又在哪呢; Person p 是申明一个引用;引用就是个指针;我随意申明个指针指向对象也可以的.可是不行;为什么? Person 准确的说是自己创的抽象的数据类型;而不是抽象类;对吧!
查看完整描述

10 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

你问题问的很混乱...

  1. Person 准确的说是自己创的抽象的数据类型;而不是抽象类.这句话前面是对的;Person是你自定义的类,类可以看作一种数据类型;但后面这句,你扯出了另外一个概念(可能你是无意的),抽象类是不能实例化的(不能new)。
  2. Person p 是申明一个引用;引用就是个指针;我随意申明个指针指向对象也可以的.这句话也没错。可是不行,为什么? 因为p声明的是Person类型,只限于指向Person及其子孙类。就像int i= 5;可以i=1;i=2;但不可以i="hello world".
  3. new Person(),这个地方不知道你看什么书看来的,我是没见过new Person和()分开说的。这个地方就是对象正式开始实例化了。这句话执行完就意味着内存的某个地方有一个实实在在的Person对象(对象就是实例),它有具体的名字、年龄...这些属性,也有say“你好”...这些方法(赋予它姓名、年龄、say“你好”等等这些都是 new 构造函数的作用,但赋予它姓名属性不代表赋予了它姓名,有可能这个阶段还没有给它起具体的名字)。
查看完整回答
反对 回复 2018-12-16
?
LEATH

TA贡献1936条经验 获得超6个赞

通过调用构造函数来创建一个对象..

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

查看完整回答
反对 回复 2018-12-16
?
MYYA

TA贡献1868条经验 获得超4个赞

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

查看完整回答
反对 回复 2018-12-16
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

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

查看完整回答
反对 回复 2018-12-16
?
达令说

TA贡献1821条经验 获得超6个赞

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

查看完整回答
反对 回复 2018-12-16
?
偶然的你

TA贡献1841条经验 获得超3个赞

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

查看完整回答
反对 回复 2018-12-16
?
四季花海

TA贡献1811条经验 获得超5个赞

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

查看完整回答
反对 回复 2018-12-16
?
Qyouu

TA贡献1786条经验 获得超11个赞

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

查看完整回答
反对 回复 2018-12-16
?
繁花如伊

TA贡献2012条经验 获得超12个赞

@小梁丶: 刚入你要学的不是这个..是语法.

你先把语法学会了.再来想这些.

比如:基类的泛型静态成员.在不同的泛型实现中.是不是不同的成员?

想学内存中的具体实现.就去从C/c++开始学.

查看完整回答
反对 回复 2018-12-16
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

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

查看完整回答
反对 回复 2018-12-16
  • 10 回答
  • 0 关注
  • 625 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信