C++与JAVA的创建对象
来源:互联网 发布:腾讯网络电影合作流程 编辑:程序博客网 时间:2024/06/05 15:54
看看C++与JAVA类似创建对象的方法。
1.首先是用new,C++返回的是指向对象的指针,而JAVA是返回对象的引用。
2.JAVA不支持静态创建对象
什么意思?
看看C++静态创建对象:
class T{ public: int num;};int main(){ T t1; t1.num =1; return 0;}上述代码可以看出: T t1 ;就已经创建了一个对象了。t1 就是那个对象。
再看JAVA:
class T{ int num;}class Main{ public static void main(Sting[] args) { T t1; t1 = new T(); t1.num = 1; }}JAVA不能像C++那样 用 T t1创建对象,上述JAVA代码的 T t1 的 t1 并不是一个对象,他只是一个引用。必须用 t1 = new T(); t1 才指向一个对象
JAVA 的 T t1 的 t1 就像是一根风筝线,创建的对象就像风筝,必须用 t1 = new T();才能把线指向风筝。否则 t1 只是一根线。
那两者的不同会导致什么呢?
先看C++:
class T{ public: int num;};int main(){ T t1,t2; t1.num = 1; t2 = t1; t2.num = 2; std::cout<<t1.num<<std::endl;}打印结果是:1
因为 C++中 T t1,t2;是创建了 2 个对象。即使 t2 = t1,只不过是把 t1 成员的值赋给 t2 ,但 t1 和 t2 还是互相独立的
再看JAVA:
class T{ int num;}class Main{ public static void main(String[] args) { T t1,t2; t1 = new T(); t1.num = 1; t2 = t1; t2.num = 2; System.out.println(t1.num); }}打印结果:2
因为 T t1 , t2 ;t1 和 t2 都不是对象,他们只是两个引用,当 t2 = t1,意思是两个引用指向同一块内存,即使两个引用指向同一个对象。所以当 t2 改变 num的时候,
t1 也会改变,因为他们是两根线指向同一只风筝。
0 0
- java对象的创建与初始化
- java对象的创建与初始化
- java虚拟机------对象的创建与访问
- 【JAVA】32、对象的创建与使用
- Java 类与对象的创建
- C++与JAVA的创建对象
- DWR: 创建与JAVA对象对应的JS对象。
- C++ 临时对象的创建与防止
- C++——对象的创建与使用(一)
- C++——对象的创建与使用(二)
- Java对象创建与销毁
- Java 与 C++ 创建对象
- Java与C++创建对象
- java 对象的创建
- Java对象的创建
- Java对象的创建
- Java对象的创建
- Java对象的创建
- springMVC + ajaxfileupload异步上传图片预览,裁剪并保存图片
- 自定义图片加载框架
- java菜鸟的回炉之旅之四----整型数据类型和浮点数数据类型
- 数学黑洞
- 机器学习---k-近邻算法
- C++与JAVA的创建对象
- Three.js进阶篇之7
- 【那些年我们一起看过的论文】之《Fully Convolutional Networks for Semantic Segmentation》
- 们--加强菲波那切数列
- loadrunner中的web_url和web_submit_data的使用
- C#: 双检锁 (Double Checked Locking)
- 插入排序算法
- 马拦过河卒
- 你是怎么学习的?