黑马程序员技术交流社区

标题: Java有指针么,C++有Object类么 [打印本页]

作者: 曹晓涵    时间: 2012-3-11 16:55
标题: Java有指针么,C++有Object类么
Java中所有的类都继承了java.lang.Object类,而在C++中没有像java.lang.Object这样的类,这是为什么呢?都是面向对象,Java这样做有什么好处?Java有指针但没有传统指针的麻烦如何解释?
作者: 李明伟    时间: 2012-3-11 17:20
JAVA:它不是没有指针,而是对指针进行了伪装:使用上泛化、强化和简单化,概念上淡化和弱化。。。 C++中可以有对象类型的变量和对象指针类型,两者的区别如下: Object oo = Object(); Object * oop = new Object(); 也就是说当使用new方式时,是动态为对象分配内在并将地址赋给oop这个指针变量。 JAVA中只有一种相关类型:对象类型,可是它的表现形式却是这样的: Object oo = new Object(); 比较一下,原来它就是使用了C++的动态内在分配方式创建了一个对象,并把地址返回给了oo变量,也就是说oo本质上就是一个指针变量

C++是支持多重继承的,但JAVA是单一继承的,让所有的类都继承 Object 也有好处,比如垃圾收集很有利;C++支持直接操作指针,一个指针可以指向任何一个对象,而JAVA不直接操作指针,所有的类都继承 Object 方便对象之间的转换。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2