java创建对象

例如,booka=newbook();其中,第一个book、a、new以及book();分别表示什么含义??如果notebook为book的派生类,那么booka=new... 例如,book a = new book(); 其中,第一个book、a、new以及book();分别表示什么含义??如果notebook为book的派生类,那么book a = new notebook()正确么,反过来notebook a = new book()呢? 展开
 我来答
JINLegend
2013-06-26 · TA获得超过802个赞
知道小有建树答主
回答量:241
采纳率:100%
帮助的人:125万
展开全部
不知道你学过C/C++没有?
book a

表示创建一个指向book类对象的指针/引用。详细来说,a本质上是一个unsigned int变量,但是这个整形变量不储存别的东西,就储存内存地址。并且因为JAVA这种语言的特点,使得系统(虚拟机)自动进行类型检查,保证a变量指向的是book类型或book类子类类型的对象。
new在JAVA里是一个特殊操作符,但是我们的操作系统是用C语言来写的,new必然对应C语言的某个或某组系统函数调用。这里一般是等价于C语言的malloc函数,作用是请求操作系统为对象分配一块内存空间。
book()是构造函数,是在new出来的内存区域填充数据,初始化book类对象的一些变量或状态。
book a=new notebook()可以,父类的指针/引用可以指向子类的对象。(多态)
反过来notebook a = new book()不行。因为对于子类对象,父类所声明的变量是子类对象的空间的一部分,这意味着父类对象的所占内存空间大小不超过子类对象的大小。所以,不可能让子类指针指向父类对象,否则会指向一块未被分配的内存空间,导致出错。
没有响应m2
2013-06-26 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3484万
展开全部
book 是要创建对象的类型 a 是变量名 new 是创建对象必须的关键字 book()是调用book对象的构造方法来创建对象
book a = new notebook(); 这个正确 最基础的多态应用 自动向上转型

notebook a = new book() 这个不行 没有自动向下转型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蝴蝶魔法师
2013-06-26 · TA获得超过255个赞
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:119万
展开全部
1. book 是一种自定义的对象; 这里的a是一个引用,指向了new出来的那个book。
2. 如果notebook为book的派生类,则book a = new notebook()是正确的,这叫父类引用指向子类对象, 是多态的一种体现。
3. notebook a = new book() 是错误的。 很简单的道理, 如果自行车 和 车, 车是一个大类, 自行车派生于车, 你不可能拿个车 来当自行车用,它有可能是汽车, 三轮车等各种车。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
关哥说电影
2013-06-26 · 超过10用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:8.4万
展开全部
1. book a = new book();  第一个book 是说明a 是个book 类型  第一句话就是 创建了一个a 他是book 类型的,book()这是调用了book的构造器 通过这个构造器才能new出 book类型的a 
2.派生类 又叫 子类 也就是 book 是notbook的父类,简单说 book a = new notebook()
这个是正确的 这叫向上造型  以后继承那会讲的, 反过来 就不行了。
还有我不知道你是自己学的 还是 找的培训机构, 提醒一下 必须首字母大写 
以后也是书写一定要规范 还有缩进  因为你写的代码不是就你自己看,如果书写习惯很差的话 单位是不会愿意要的。
希望能帮助到你,望采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式