面向对象是一种程序设计的思想,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
由于之前都没有接触过面向对象,所以在写完party_bid的第三张卡片之后,我把程序做了一些修改,体验一下面向对象编程。
以下是我在学习面向对象过程中的一点收获:
1.什么是对象呢?
对象是类的实例。那么什么是类呢?类是一个抽象的概念,它定义了事物的属性和它的行为。我们是不能对类进行操作的,因为它只是一个抽象概念。我们只能对类的实例,也就是对象进行操作。这样说起来可能有点难以理解,举个例子,类就相当于汽车图纸,它定义了汽车的属性(有门)和汽车的行为(跑)。它所对应的实例就是一辆又一辆的汽车。我们不能对类进行操作,也就是说,我们不能让汽车的图纸跑。但是我们可以对实例进行操作,也就是让汽车跑。
2.怎么定义类,怎么得到这个类的对象呢?
在Javascript中,我们可以通过一下的语句来建立一个类。
function Auto(){ this.door = 2; //this是类的指针,它只能在成员函数中使用。 this.action = function(){ alert('run'); }; };
我们需要汽车这个类的对象的时候,只需要new一下就可以了。
var auto1 = new Auto();
这个时候,我们就有一辆auto1汽车了。
3.类方法和实例方法
什么是方法?我对方法的理解,就是函数。只是在面向对象的时候,我们把它叫做方法。
类方法是类本身的方法,不属于类的对象。不管有没有实例被创建,类方法都是可以使用的。在类的方法中不可以直接使用实例变量,只能通过参数传递将实例的值传进去。
实例方法就是在声明时用到了prototype的方法。每一个实例对象都有它自己的实例方法,它们相互独立。实例方法使用的前提是必须要有实例。只有在实例创建之后,实例方法才能被使用。
我们应该在什么时候使用实例方法,什么时候类方法呢?
我的理解是,当我们需要对实例对象中的数据进行操作的时候,使用实例方法。其余情况使用类方法。(有点简单粗暴- -|)
我的问题:
1.类方法和全局的函数有什么区别?我怎么判断一个函数,我该把他写成类方法,还是实例方法呢。
2.我的程序还不是一个完全面向对象的程序(太弱了T^T),找机会看看Java,了解一下完全面向对象是怎么写的。