爱问知识人 爱问教育 医院库

我认为static方法不是“面向对象”的

首页

我认为static方法不是“面向对象”的

Java是非常“面向对象”的语言(尤其和现在同样非常火的C++相比,Java是单根继承结构),但我感觉Java里一种非常重要(重要得不能再重要,main()必须是静态方法)的方法——static方法,却不是“面向对象”的。因为它们具有全局函数的语义,使用static方法时,由于不存在this,所以不是通过“向对象发送消息”的方式来完成的。
所以我认为,因为存在static方法,Java并不是完全的“面向对象”语言。如果一段代码中出现了太多的static方法,那就该重新考虑自己的设计了

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

    z***

    2006-08-28 00:42:46

其他答案

    2006-08-30 09:19:34
  • JAVA里会出现一些非面向对象的东西和一些非他所宣传的东西,例如指针,实际上是存在的,只是换了个名字而已,叫引用,并且操作不像C那么自由了,而且效率也没有C高

    心***

    2006-08-30 09:19:34

  • 2006-08-28 14:35:29
  • 确实不是面向对象的。但却非常实用。语言是用来用的,而不是用来实际某种标准的

    曾***

    2006-08-28 14:35:29

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 178-197
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):