C#和java使用面向对象特性和不使用面向对象特性的区别是什么

首页 / 常见问题 / 低代码开发 / C#和java使用面向对象特性和不使用面向对象特性的区别是什么
作者:低代码工具 发布时间:10-26 16:44 浏览量:8196
logo
织信企业级低代码开发平台
提供表单、流程、仪表盘、API等功能,非IT用户可通过设计表单来收集数据,设计流程来进行业务协作,使用仪表盘来进行数据分析与展示,IT用户可通过API集成第三方系统平台数据。
免费试用

C#和java使用面向对象特性和不使用面向对象特性的区别是:是否使用多态特性(继承本身也是为了多态),比如同样是转换成字符串,int.ToString()和float.ToString(),用非对象写法就是int2String,float2String。

一、C#和java使用面向对象特性和不使用面向对象特性的区别

C#和java使用面向对象特性和不使用面向对象特性的区别是否使用多态特性(继承本身也是为了多态)。

比如同样是转换成字符串,int.ToString()和float.ToString(),用非对象写法就是int2String,float2String。

单独使用的时候没区别,但是在你不确定对象是int还是float的时候,就只需要写x.ToString(),面向过程则无所适从,只能if xx is int {int2String()} elseif xx is float {float2String()},繁琐且性能低。

当然这个地方还可以用方法重载,但这个也是多态特性之一。

多态是面对对象最重要的特性,主要是作用就是省略大量的模式判断。

C#和Java必须使用对象才能编程,已经全面对象化。只有C\JS\PHP等可以不用对象,但通常都只能做规模较小的项目。

如果写过较多大型程序,你就会发现没有对象写不了复杂的或者规模大的程序。C#和Java都是随着软件行业的发展,为此应运而生的。

延伸阅读:

二、从功能比较java与C#

比较起Java和C#大相径庭的那10%,会发现C#五花八门的特性要多很多。比较知名的有:委托,属性,真正的泛型,索引器,类初始化器,分部类,操作符重载,struct,unSAFe代码,IDisposable等,另外。net framework 3.5还加了一大串纯粹由编译器提供的特性。委托,这个可以算是C#之于Java的最大优势。虽然Java可以依靠接口,匿名内部类这些特性实现委托一样的功能,但却要麻烦许多,如果涉及到N个委托实例相加的情况,那么一个C#里面简单的”+”号,在Java里就只能用FilterChain,InterceptorStack这种概念了。

真正的泛型,这个又是一大C#的优势,同时伪泛型又是Java的一大败笔。但是Java年代比较长,为兼容性考虑不得不使用假的泛型实现。如果泛型不是在jdk1.5时推出,而是在jdk1.4,和collection framework一起推出,我认为它也会采用真正的泛型实现。索引器,有了这个很多容器类都可以直接用[]取元素,感觉还不错,比没有好,编译器的小把戏。类初始化器,典型的懒汉特性。每次用顶多能省下一两行代码,又是编译器的小把戏。分部类(partial class),纯粹为了vs.NET的那一大堆图形化设计器老和人的代码冲突而搞出来得玩意,又是编译器的小把戏。操作符重载,属于用到得不多,要用时却显得特别有用的东西。struct,在堆栈上的东西,释放内存那是超级的快,只不过需要用到这个的场合,大概都在使用C++编程。unSAFe代码,纯粹增加语言复杂性的东西。就好像一个人搬家,看这个不舍得扔,那个也不舍得扔,搞到最后把瓶瓶罐罐都搬走了。IDisposable,实现这个接口,配合using块,非常的强大,终于可以像C++那样掌握对象的销毁了。

接着说说Java比C#多的特性:

匿名内部类:真是极端方便的一个东西,还和Java的好多设计模式有关系。

动态代理: Java里面要实现AOP,易如反掌;C#要实现AOP,相对较难,不得不借助Assamble命名空间下的那些动态IL生成工具或者使用拦截器。这就是动态代理的作用。

希望有一天C#可以拥有匿名内部类和动态代理,变得更完善。也希望Java也可以有委托等。

最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。

最近更新

产品开发过程的阶段有哪些
10-30 10:47
小程序系统开发用什么软件
10-30 10:47
团队开发怎么写总结范文
10-30 10:47
微商管理系统开发有哪些
10-30 10:47
激战2开发费用怎么算
10-30 10:47
如何让开发团队速度最快
10-30 10:47
找网站开发团队名称怎么取
10-30 10:47
支付系统开发费入什么科目
10-30 10:47
如何组建it开发团队
10-30 10:47

立即开启你的数字化管理

用心为每一位用户提供专业的数字化解决方案及业务咨询

  • 深圳市基石协作科技有限公司
  • 地址:深圳市南山区科技中一路大族激光科技中心909室
  • 座机:400-185-5850
  • 手机:137-1379-6908
  • 邮箱:sales@cornerstone365.cn
  • 微信公众号二维码

© copyright 2019-2024. 织信INFORMAT 深圳市基石协作科技有限公司 版权所有 | 粤ICP备15078182号

前往Gitee仓库
微信公众号二维码
咨询织信数字化顾问获取最新资料
数字化咨询热线
400-185-5850
申请预约演示
立即与行业专家交流