JAVA概念之面向对象

来源:互联网 发布:免费虚拟手机号软件 编辑:程序博客网 时间:2024/06/05 16:28

软件开发有两个主流方法——结构化开发方法和面向对象开发方法,前者有C,Basic,Pascal。后来人们发现面向对象有着更好的可重用性和可拓展性,于是出现了大量面向对象的语言,如C++,JAVA,c#和Rubby。

结构化程序设计采取自上而下,逐步求精的方法,将一个系统的功能逐步细化成一个一个的函数,因此也被叫做面向过程的语言,这类程序有时也被成为面向功能的程序或面向数据流的程序。


面向对象语言的思路为一切皆对象,其主要特点有三个——封装性(隐藏部分数据和方法,将实现功能的细节隐藏起来,然后暴露一些共有方法给用户),继承性(继承是面向对象语言重复利用代码的利器,也使类之间的关系更为清晰),多态性(多态性是以继承为基础的,子类对象之间赋值给父类后,运行时仍表现为子类的行为特征,这就意味着同一个类型的对象执行同一个方法最后的行为特征可能完全不同,这就是所谓的多态性)。其实面向对象语言还有一个很重要的特点是抽象性——一个个体的特征和数据其实极多,但是我们无法也没必要将所有数据和特征都记录下来,因此需要我们将对象进行抽象化,只选取和我们所研究问题有关的变量。但抽象性的特点是面向过程语言同样所具有的特点,因此并不是面向对象语言特有的语言。


面向对象和基于对象的区别——基于对象没有继承这个概念,每个类都必须重新定义,因此也就没有多态性的概念(JavaScript就是基于对象语言)。

类是具有共同属性,共同方法的一类事物的集合。类通过将部分数据和实现过程隐藏起来,暴露公用方法来对外提供服务和功能成功提高了内聚性并降低了耦合性(内聚性是一个模块内部各个元素之间彼此结合的紧密程度的度量,内聚从功能角度开度量模块内的联系;耦合性事模块间互相连接的紧密程度的度量,它反映了模块的独立性,也反映了系统分解后的复杂程度。因此高内聚,低耦合有利于提高模块的独立性。

JAVA中除了8种基础数据类型,一切皆对象。而JAVA中对象具有唯一性,每个对象都有一个标识来表示它(这个唯一标识可以表现为HashCode),当一个对象失去标识时,就成为了垃圾,只能等着垃圾回收器回收。此外JAVA不允许直接操作对象,只能通过引用来操作对象。



0 0
原创粉丝点击