日期:2014-05-17  浏览次数:20717 次

OO里,用一个方法,就得新建一个类对象吗?
我想在程序里,想执行一个动作。类似以前程序里要执行某个方法或者过程。

这个动作在某个类里有。

那么我是不是要先new一个他的对象,然后在使用对象.方法来操作?

还是可以跟以前的程序一样,另外写个过程,然后执行这个过程?

------解决方案--------------------
这要看你的方法是不是用了staic这个关键字,用了它你就无需new一个对象,而是直接可以用类.方法()来调用
------解决方案--------------------
OOP的精髓就是这个啊,无需重新写过程。只要实例化对象就可以了
------解决方案--------------------
你还是思路没转过来吧,OO眼里考虑问题就是从各个对象出发,不是像你这样从流程出发
------解决方案--------------------
 
引用:
我想在程序里,想执行一个动作。类似以前程序里要执行某个方法或者过程。

这个动作在某个类里有。

那么我是不是要先new一个他的对象,然后在使用对象.方法来操作?

还是可以跟以前的程序一样,另外写个过程,然后执行这个过程?


你可以这样理解,在任何方法的执行实际都在对象里面
所以你的想法“我想在程序里,想执行一个动作。还是可以跟以前的程序一样,另外写个过程,然后执行这个过程?[/” 这个完全可以实现。
因为你写的这个过程,实际上是和“想执行一个动作” 这个动作发起者的函数是在同一个对象中。
所以你可以想象成和你以前的思想一样,直接在发起者函数下面写过程。
(当然OOP的好处是,你不光可以和以前一样 在你想执行一个动作下面写某个方法,你还可以在另外一个类中些,甚至另外一个项目中,另外一台服务器上WCF访问,所以OOP包含面向过程,肯定比面向过程思想更强大)
------解决方案--------------------
引用:
如果为了执行某个动作,就要new一个对象。那是不是很浪费性能啊?


现在的计算机这么强大,这点性能损失怕什么?面向对象能节省的修改、扩展和维护费用,才客观。
------解决方案--------------------
注意OO封装的是数据+针对这个数据的操作为一个对象。

如果仅是一个流程操作,写成公共静态方法就得了,不用非要套一个类,new一个对象再用
------解决方案--------------------
引用:
如果为了执行某个动作,就要new一个对象。那是不是很浪费性能啊?


额.LZ是不是理解成每执行一次就要new一次啊?
只要new一次就够了,然后就可以重复执行类里的方法,也可以执行类里其他方法
------解决方案--------------------
别被一味的认为面向过程就比OO低级似的。
语言发展的动力,抽象。
OO是吧面向过程中的数据,和对数据的操作和并在一起了,像成一个大的集合,叫类。
加上继承,才衍生出OO最有用的特性“多态”。可以说OO的作用是吧一个一个“数据+对数据操作的过程”提升为了可动态切换的、更符合人思维的数据加操作集合”,仅此而已,比面向过程抽象层次更高一些。
但是你还是会需要单纯的功能函数,输入参数,产生结果这种,不依赖什么其他状态的函数。但是OO宣称一切都是对象,那怎么办?静态类,不用new,OO对现实的妥协。
------解决方案--------------------
静态方法你可以理解为在面向对象的语言中保留的非面向对象的语法元素。
------解决方案--------------------
引用:
这要看你的方法是不是用了staic这个关键字,用了它你就无需new一个对象,而是直接可以用类.方法()来调用

+++++
------解决方案--------------------
静态方法不用实例化就能使用。
------解决方案--------------------
用static方法就可以