您的位置:首页 > 编程语言 > Java开发

JAVA基础——如何理解面向对象

2017-08-29 19:29 148 查看
这是在java面试中很容易遇到的问题,即使工作几年。在应聘java岗位时,你的上级对象依然有可能问到这个问题。

遇到这类问题,切莫心慌。一切从最基本的原理说起。下文有自己从业来的理解,也有摘录网友们的热心回答。

编程语言大致可以分为两类 :

一 面向过程 如汇编 C语言等(这里就不过多描述面向过程,可百度百科)

二 面向对象 如C++ JAVA PHP c#等

面向对象的四个基本特征

封装  继承 抽象 多态

封装

封装是使软件部件具有优良模块化的基础,封装的目的是使软件具有“高内聚,低耦合”的特性,防止程序间相互依赖带来的变动性影响。面向对象的封装,属性用变量定义,行为用方法定义,方法可以直接方位对象中的一个属性。

例如

人开车,人需要将车发动起来,然后开动起来。我们应该以人为对象将车放进来么,不是,我们需要封装一个车的对象,里面包括车的属性。同时在车这个对象里,提供一个启动的方法,将车的状态“发动”起来。

这就是面向对象的封装性,即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为(方法)来读取和改变。

继承:
在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。

多态:
所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

抽象:
抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。例如,看到一只蚂蚁和大象,你能够想象出它们的相同之处,那就是抽象。抽象包括行为抽象和状态抽象两个方面。例如,定义一个Person类,如下:

classPerson{

String name;

int age;

}


人本来是很复杂的事物,有很多方面,但因为当前系统只需要了解人的姓名和年龄,所以上面定义的类中只包含姓名和年龄这两个属性,这就是一种抽像,使用抽象可以避免考虑一些与目标无关的细节。我对抽象的理解就是不要用显微镜去看一个事物的所有方面,这样涉及的内容就太多了,而是要善于划分问题的边界,当前系统需要什么,就只考虑什么。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面向对象