对java语言"完全"面向对象的理解

java语言是面向对象的语言,也可以表示为java是面向类和接口编程的语言,就我而言,我个人认为
java里面static方法和引用不是面向对象的,java里面的引用容易理解就相当于c语言的指针,java里面的对象就是指针,只是换了个名字而已,只是操作起来效率没有c语言中指针高.
而对于static方法,我们在使用static方法时,由于不存在this,所以java不是通过向对象发送消息
的方式来完成,这样理解的话,我认为java里面的static方法,并不是完全面向对象的.
Java是非常“面向对象”的语言(尤其和现在同样非常火的C++相比,Java是单根继承结构),static
方法,却不是“面向对象”的。因为它们具有全局函数的语义,使用static方法时,由于不存在this,
所以不是通过“向对象发送消息”的方式来完成的。所以我认为,因为存在static方法,Java并不是完全的“面向对象”语言。如果一段代码中出现了太多的static方法,那就该重新考虑自己的设计.

Java是单继承,但它有接口(interface),解决C++里面多重继承带来的问题.main方法必须是static,
因为只有使用main方法是入口,也就是说,jvm要执行,就必须从 main方法开始,static可以不用创建实例就可以调用该方法。那么,JVM就可以在没有初始化这个类的任何实例前就调用main.所以这个不是OO设计的问题,因为一个程序肯定要有入口.static一般是向其他类提供工具,所以经常把许多static函数封装到一个类里面,比如说常用的System.out.println....等都是封装好的静态方法,用来提供一些常用功能,避免自己的重复实现.

综上所述,对java里会出现一些非面向对象的东西和一些非他所宣传的东西,例如指针,实际上是
存在的,只是换了个名字而已,叫引用,并且操作不像C那么自由了,而且效率也没有C高,之前从`博客上面看到然有部分人对这个的理解,然后自己拓展开来谈一下自己的理解.
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值