摘要:
在现实生活我们的对象,状态是多变的,而行为也是可以在后天养成的。比如人出生后状态会变化,行为随着时间和学习和环境的变化而变化。程序里面的对象也具有这样的特征。只不过,面向对象语言不同的实现不同而形式不一样,比如静态语言就是用类型这个事物来使得对象具有某种属性,在实例化以后可以通过改变属性的值来改变对象的状态。而行为的动态变化特征对于使用类型模板技术的静态语言来讲,使用继承不能获得,因为继承还是一种静态形式,这个时候需要使用组合技术来实现。 而动态语言不是使用类型技术来使得对象具有状态和行为,对象就是对象,你要添加什么状态,什么行为随便你。当然为了方便也可以使用类型模板技术以外的手段来实现,比如 阅读全文
摘要:
能把面向对象和具体语言的对象抽象联系起来 在面向对象刚刚入门的时候,一大顿理论加上解释又是只言片语,什么原则,方法等根本好像是没有用的嘛。唯一看明白的就是对象,类就是Class。在编程的时候,碰到一个名词就把它写成class,以为这就是面向对象编程。拿图书馆案例来讲,初步分析后可能就把我们的学生Student作为我们的Class来编程,并设计了它的属性,方法和操作,具体来说就是给Student加上了name属性,借书方法等。 仿佛面向对象技术就是这么简单,这时候就会怀疑面向对象语言书本上开头讲的什么封装,多态,继承等到底有什么作用,简直就是一大堆废话!? 这个时候如果去看Java... 阅读全文