C/C++编程笔记:C++面向对象和Java面向对象的区别

C++与java都是面向对象的编程语言 , 同样是面向对面编程 , 那他们的不同之处今天我们就来看一看吧!
C/C++编程笔记:C++面向对象和Java面向对象的区别文章插图
引用:
java和c++都有引用的概念 , 但两者是完全不同的东西 , c++的引用是变量的一个别名 , 引用一旦绑定就不能重新引用其他变量 , c++引用也不能为null 。 java引用更像c++的指针 , 对引用赋值是重新绑定引用的对象(在c++里面是改变对象的值) , 引用可以为null(导致了烦人的NPE问题 , 万恶之源)
类型系统:
java区分值类型与引用类型 , 用户自定义类型都是引用类型 , 值类型和引用类型在很多地方不能混用(如泛型参数) , c++没有值类型和引用类型的概念 , 类似的概念是普通类和它的指针类型 。
java有根基类Object , c++没有根基类 。
C/C++编程笔记:C++面向对象和Java面向对象的区别文章插图
访问控制:
都有public,protected,private三级访问控制
此外 , java还有包访问控制 , c++有友元
继承:
c++分public继承 , protected继承(意义不明)和private继承(基本和组合没啥区别) , java只有public继承 。
c++只能覆盖基类中显式定义的虚函数 , java中方法默认是虚的 , 除非显式标明final
c++支持多重继承 , java只支持单继承 , 但支持实现多个接口(c++没有语法层面上的接口)
C/C++编程笔记:C++面向对象和Java面向对象的区别文章插图
构造与析构:
对象构造大致相同 , 但是c++在构造函数中调用虚函数无法多态(因为对象的子类部分还没构造)
c++可以定义析构函数 , java没有析构函数(java提供一个终结方法 , 但它和析构函数不是等价的)
对象生命周期控制:
c++主要靠手动申请 , 释放内存或者借助析构函数(RAII技术) , java依靠gc
异常处理:
c++没有也不需要finally块 , 释放资源依靠析构函数就行了 。
C/C++编程笔记:C++面向对象和Java面向对象的区别文章插图
泛型:
c++模板采用代码生成技术 , 运行时能够保留类型信息 , java采用类型擦除 , 类型信息在运行时就没了(所以其实只是进行安全的自动类型转换而已……) 。 c++模板参数可以是基本类型 , 用户自定义类型和整型常量 , java只能是引用类型 。 c++还可以对模板进行特化 , java没有这个功能 。
其他:
c++有运算符重载 , java没有(除了String类重载了+)
通过这篇文章 , 大家对于C++与Java的面向对象的不同知道了多少呢?记不住的小伙伴可以收藏一下 , 希望对大家有帮助哦~
另外如果你想更好的提升你的编程能力 , 学好C语言C++编程!弯道超车 , 快人一步!
编程学习书籍分享:
C/C++编程笔记:C++面向对象和Java面向对象的区别文章插图
编程学习视频分享:
C/C++编程笔记:C++面向对象和Java面向对象的区别文章插图
分享(源码、项目实战视频、项目笔记 , 基础入门教程)
欢迎转行和学习编程的伙伴 , 利用更多的资料学习成长比自己琢磨更快哦!
【C/C++编程笔记:C++面向对象和Java面向对象的区别】C语言C++编程学习交流圈子 , 点击下方【了解更多】获取更多学习资料帮助自己成长进步哟~