面向对象程序设计思想的个人理解

一、与传统的面向过程的程序设计方法有何不同

    举个例子,比如希望完成“猪八戒吃西瓜”这样一件事情,两种设计思想和方法就会完全不同:

    在面向过程的程序世界里,一切以函数为中心,函数最大,因此这件事情会用如下语句来表达:

吃(猪八戒,西瓜);

    在面向对象的程序世界里,一切以对象为中心,对象最大,因此这件事情会用如下语句来表达:

猪八戒.吃(西瓜);

    对比两条语句不难发现,面向对象的语句更接近自然语言的语法:主语、谓语、宾语一目了然,十分直观,因此程序员更易理解。

二、面向对象的三个基本特征

    封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)

    为何抽象不是面向对象的特征之一?因为抽象并不打算了解全部问题,而只是考虑部分问题,且所有的编程语言都需要抽象,故抽象是面向对象的重要部分,但它不是面向的特征之一。

三、为何说JavaScript语言不是真正的面向对象的编程语言,而是一种基于对象的编程语言?

    在编程语言领域,有“面向对象”和“基于对象”的概念,这两个概念极易混淆。通常而言,“基于对象”也使用了对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说,“基于没有继承的特点;而”多态“则更需要继承,没有了继承的概念自然也就无从谈论”多态“。面向对象方法的三大基本特征(封装、继承、多态)缺一不可。JavaScript语言就是基于对象的,它使用一些封装好的对象,调用对象的方法、设置对象的属性;但是它们无法让开发者派生新的类,开发者只能使用现有对象的方法和属性。

    判断一门语言是否是面向对象的,通常可以使用继承和多态来加以判断。“面向对象”和“基于对象”都实现了“封装”的概念,但是面向对象同时还实现了“继承和多态”,而“基于对象”没有实现这些。

 

你可能感兴趣的:(Java,Java教学)