简述Java中的面向对象

来源:互联网 发布:java pkcs10 公钥 编辑:程序博客网 时间:2024/06/07 09:39
        Java是一种面向对象的语言,那么什么是面向对象?
        首先,什么是对象(Object)?Java中有一种思想叫做“万物皆对象”,对象就是具有某些特殊属性(成员变量)和行为方式(方法)的实体。现实生活中的任何事物都可以看作是对象,无论是具体或抽象的事物,比如:一个人或者是天气的变化。具有两个特征:属性(Property)和行为(Behavior)。
        其次,什么是面向对象?我们先了解什么是面向过程。面向过程是以函数为基础,完成各种操作,强调过程;面向过程的编程语言,强调的是功能行为,注重过程的一步步实现。而面向对象是已对象为基础,完成各种操作主要强调对象、结果。面向对象的编程语言有Java、c++、c#等。面向对象的编程语言,是将功能封装进对象,强调具备某些功能的对象,其实面向对象的语言是基于面向过程的,因为即使是调用某个对象,被调用的对象的方法也是通过面向过程的方式编写的。但面向对象的编程思想更加符合人们的日常思维,将复杂的问题分解为不同领域的简单问题,更便于逻辑分析与分工合作。
        最后,面向对象有什么特征?在面向对象的程序设计中,对象与消息传递分别表现事物及事物之间的相互关系,通过封装(Encapsulation)将对象的定义和对象的实现分开,通过继承(Inheritance)体现类与类之间的相互关系,以及由此带来的实体的多态(Polymorphism)性,构成了面向对象的基本特征。

        封装指的是隐藏对象的属性以及实现细节,仅对外提供访问的方法。面向对象的程序设计是将数据成员(Data Member)和属于此数据的操作方法(Method)放在同一实体或对象中,就是封装。封装是为了达到模块化和信息隐藏的目的。它有自身的优点:将变化隔离,其他对象在使用该对象的时候可以任意修改可访问的信息,但不会影响其他依赖于此对象的对象,提高了安全性;同时,一个对象被对立的编写及维护而不影响其他对象,而且该对象可以被来回调用传递,提高了重用性。当然,它也有自己不可避免的缺点,对象被封装后,变量及方法的访问难度提升,增加了访问步骤。
        继承指的是多个类具有共同的属性(成员变量)与行为(成员方法)的时候,将这些共同的部分抽取出来定义到一个公共的类中,这时其他类与这个公共的类形成了继承关系,从而在多个类中不需要重复定义公共部分。这个公共的类称为:父类、超类、基类;其他的几个类称为:子类、派生类。继承有自身的优点:可以实现代码的复用,利用已存在的父类程序代码,编写子类时只需要写子类特有的属性与行为。它也有自身的缺点:父类发生变化时,会造成子类也发生变化,造成“强耦合”关系,这是写程序时需要尽量避免的。Java在定义类时,只允许单继承,不允许多重继承,但可以多层继承。
        多态指的是Java程序在编译与执行时表现出来的不同状态,是继承关系在执行过程中的独特现象。多态针对的是引用数据类型。形成多态的条件首先要有子父类的继承关系,或类与接口的实现关系;其次,子类要重写父类的方法;最后,在调用时,父类的“引用变量”指向子类的对象。
原创粉丝点击