`
sodart
  • 浏览: 28145 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

面向对象的特征有哪些方面,封装,抽象,继承,多态

阅读更多
面向对象的特征有哪些方面
计算机软件系统是现实生活中的业务在计算机中的映射,而现实生活中的业务其实就是一个个对象协作的过程。面向对象编程就是按现实业务一样的方式将程序代码按一个个对象进行组织和编写,让计算机系统能够识别和理解用对象方式组织和编写的程序代码,这样就可以把现实生活中的业务对象映射到计算机系统中。
面向对象的编程语言有封装、继承 、抽象、多态等4个主要的特征。

封装

封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。通常情况下,只要记住让变量和访问这个变量的方法放在一起,将一个类中的成员变量全部定义成私有的,只有这个类自己的方法才可以访问到这些成员变量,这就基本上实现对象的封装,就很容易找出要分配到这个类上的方法了,就基本上算是会面向对象的编程了。把握一个原则:把对同一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在同一个类中。
例如,人要在黑板上画圆,这一共涉及三个对象:人、黑板、圆,画圆的方法要分配给哪个对象呢?由于画圆需要使用到圆心和半径,圆心和半径显然是圆的属性,如果将它们在类中定义成了私有的成员变量,那么,画圆的方法必须分配给圆,它才能访问到圆心和半径这两个属性,人以后只是调用圆的画圆方法、表示给圆发给消息而已,画圆这个方法不应该分配在人这个对象上,这就是面向对象的封装性,即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为(方法)来读取和改变。一个更便于理解的例子就是,司机将火车刹住了,刹车的动作是分配给司机,还是分配给火车,显然,应该分配给火车,因为司机自身是不可能有那么大的力气将一个火车给停下来的,只有火车自己才能完成这一动作,火车需要调用内部的离合器和刹车片等多个器件协作才能完成刹车这个动作,司机刹车的过程只是给火车发了一个消息,通知火车要执行刹车动作而已。

抽象

抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。例如,看到一只蚂蚁和大象,你能够想象出它们的相同之处,那就是抽象。抽象包括行为抽象和状态抽象两个方面。例如,定义一个Person类,如下:
class Person
{
String name;
int age;
}
人本来是很复杂的事物,有很多方面,但因为当前系统只需要了解人的姓名和年龄,所以上面定义的类中只包含姓名和年龄这两个属性,这就是一种抽像,使用抽象可以避免考虑一些与目标无关的细节。我对抽象的理解就是不要用显微镜去看一个事物的所有方面,这样涉及的内容就太多了,而是要善于划分问题的边界,当前系统需要什么,就只考虑什么。

继承

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

多态:

多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。多态性增强了软件的灵活性和扩展性。例如,下面代码中的UserDao是一个接口,它定义引用变量userDao指向的实例对象由daofactory.getDao()在执行的时候返回,有时候指向的是UserJdbcDao这个实现,有时候指向的是UserHibernateDao这个实现,这样,不用修改源代码,就可以改变userDao指向的具体类实现,从而导致userDao.insertUser()方法调用的具体代码也随之改变,即有时候调用的是UserJdbcDao的insertUser方法,有时候调用的是UserHibernateDao的insertUser方法:
UserDao userDao = daofactory.getDao(); 
userDao.insertUser(user);

比喻:人吃饭,你看到的是左手,还是右手?
分享到:
评论

相关推荐

    da06抽象继承封装多态接口.zip

    在编程领域,面向对象编程(OOP)是设计和实现软件的一种重要方法,它强调了类、对象、继承、封装、多态等核心概念。在Flutter框架中,这些概念同样得到了广泛的应用。Flutter是一个用于构建高性能、高保真度的移动...

    封装、继承、多态.docx

    封装、继承、多态 一、 封装 封装是面向对象编程的三大特性之一,它是指将同一类事物的特性与功能包装在一起,对外暴露调用的接口...Java 面向对象的三大特性是:封装、继承与多态。这三大特性是面向对象编程的核心。

    Python中的面向对象的三大特征_封装、继承、多态.pdf

    面向对象编程有三大特征:封装、继承、多态。 一、封装(Encapsulation) 封装是将数据(属性)和行为(方法)包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。这样无需关心方法内部的具体...

    一个实例告诉你什么是封装继承和多态

    封装、继承和多态是面向对象编程的三大特性,它们是Java、C#、Python等许多编程语言中的核心概念。本文将通过一个实例详细解析这三个概念,并以`ConsoleApplication1`为例来阐述。 首先,封装是面向对象编程的基础...

    面向对象封装继承和多态.docx

    本文档总结了面向对象编程的基础知识点,包括封装、继承、多态、集合等内容。以下是对每个知识点的详细解释。 类和对象 * 类是抽象的概念,java 中面向对象编程就是面向类来编程。 * 类是具有相同属性和行为的一个...

    类和对象、对象和封装、继承、多态、异常等教学...

    本教程针对初学者,详细讲解了类和对象、对象和封装、继承、多态以及异常处理等关键面向对象的知识点。 1. **类和对象**: - **类**:类是Java中的蓝图,它定义了一组具有相同属性和行为的对象。在"第一章 类和...

    C#做的计算器,利用类的封装继承多态。。

    在C#编程中,"C#做的计算器,利用类的封装继承多态"是一个典型的面向对象编程示例。这个计算器项目展示了如何应用C#的核心概念,如类、封装、继承和多态,来构建一个实际的软件应用。下面将详细解释这些知识点。 1....

    一个实例告诉你什么是封装继承和多态二

    在编程领域,封装、继承和多态是面向对象编程(OOP)的三大核心概念。本文将通过一个实例深入解析这三个概念,以帮助你更好地理解它们的内涵与应用。 首先,我们来谈谈封装。封装是面向对象编程的基础,它允许我们...

    Java封装继承多态实例以及文件流操作

    在这个实例中,我们将探讨四个关键概念:封装、继承、多态以及文件流操作,这些都是Java中的核心特性,也是理解OOP(面向对象编程)的基础。 首先,**封装**是面向对象编程的核心理念之一,它涉及将数据和方法捆绑...

    学习笔记:抽象封装、继承、多态.doc

    通过上述讨论,我们可以看出面向对象编程的核心思想在于利用抽象、封装、继承和多态等机制来提高代码的可读性、可维护性和可扩展性。在实际开发过程中,合理地运用这些概念能够极大地提升软件的质量和效率。

    动物练习.NET面向对象继承多态

    在.NET框架中,面向对象编程(Object-Oriented Programming,OOP)是一种强大的软件开发范式,它基于类和对象的概念,以及封装、继承、多态等核心特性。本实践项目名为“动物练习”,旨在通过模拟不同类型的动物来...

    用C语言实现面向对象思想(封装,继承,多态).zip

    面向对象编程(Object-Oriented Programming,简称OOP)是一种流行的编程范式,它通过将数据和操作数据的方法封装在对象中,实现了程序设计的抽象、封装、继承和多态等核心特性。C语言,虽然最初设计时并未直接支持...

    《java面向对象程序设计-继承和多态》教案.doc

    面向对象编程是Java的核心特性,本教程主要涵盖了三个关键概念:封装、继承和多态,以及相关的访问修饰符和方法修饰符。 封装是面向对象编程的基础,它涉及到将数据(属性)和操作这些数据的方法(行为)组合在一个...

    C实现封装,继承,多态

    在C++中,封装、继承和多态是面向对象编程(OOP)的三大核心特性。然而,C语言作为一门不直接支持面向对象特性的语言,实现这些概念需要利用其强大的底层机制。以下是对这些概念的详细解释以及如何在C语言中模拟实现...

    9、Java面向对象之继承和多态作业题[收集].pdf

    在Java编程语言中,面向对象是其核心特性之一,它包括了封装、继承和多态等概念。这里的作业题主要涉及到了继承和多态这两个面向对象的重要知识点。 首先,我们来详细讲解一下**继承**。继承是面向对象设计的一个...

    学习Java程序入门-面向对象之封装,继承,多态(下).docx

    ### 学习Java程序入门-面向对象之封装,继承,多态(下) #### 五:再谈继承 继承在面向对象编程中是一项核心概念,它允许创建一个新的类(子类),该类继承了现有类(父类)的属性和行为。通过继承,可以有效地复用...

    教学视频-继承&多态

    多态是指同一种行为在不同对象上有不同的表现形式,它是面向对象的三大特性之一(封装、继承、多态)的重要组成部分。 1. 方法重载(Overloading):在同一个类中,可以定义多个具有相同名称但参数列表不同的方法,...

    C# 面向对象三大特性:封装、继承、多态

    在C#中,面向对象的三大特性——封装、继承和多态,是实现这一目标的关键工具。 1. 封装 封装是面向对象编程的基础,它意味着将数据和操作这些数据的方法捆绑在一起,形成一个独立的单元,即类。在C#中,我们可以...

    Java 面向对象三大特性之多态

    面向对象编程是Java的核心特性,其中封装、继承和多态是三大基石。在这个主题中,我们将专注于"多态"这一特性,它是Java编程灵活性和可扩展性的重要体现。 多态(Polymorphism)在希腊语中意为“多种形态”,在编程...

Global site tag (gtag.js) - Google Analytics