精华内容
下载资源
问答
  • OOP编程思想

    万次阅读 多人点赞 2018-07-31 19:29:53
    OOP编程思想 OOP核心思想:封装,继承,多态。 理解: 对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作...

    OOP编程思想

    OOP核心思想:封装,继承,多态。

    理解:

    对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

    oop的基本思想:把组件的实现和接口分开,并且让组件具有多态性。

    oop概念呢:

    OOP是九十年代才流行的一种软件编程方法。它强调对象的“抽象”、“封装”、“继承”、“多态”。我们讲程序设计是由“数据结构”+“算法”组成的。从宏观的角度讲,OOP下的对象是以编程为中心的,是面向程序的对象。我们今天要讲的OOD是面向信息的对象,是以用户信息为中心的。

    对象的产生:

    一、是以原型(prototype)对象为基础产生新的对象。

    二、是以类(class)为基础产生新对象。

    封装

    封装:让抽象的事物保护自身的状态,防止非其他事物对其进行错误的状态改变操作。我们抽象完一个事物后,可能在特定的条件下,其本身的状态需要改变,但是这个改变并允许其他的事物来进行,这样的改变只允许这个事物认同的操作域来进行,可以是该事物本身,也可以是它信任的其他事物。这样我们就能对我们抽象完的每个事物进行自身数据的保护

    继承

    继承:让抽象出来的事物具有本应该具有的联系。我们能用类来描叙一个抽象的事物,同时能用对象来描叙具体的事物,但是这些事物都是独立的,彼此之间没有应该有的联系,这样的孤立设计并不符合现实逻辑,让事物之间的联系得到描叙,我们就需要继承,例如:发明自行车的人并不是一开始就发明了多人自行车,这些都是从双轮自行车演变和发展而来,但是他们都有共同的特点,有轮子,有车架子,等等。让我们用继承的关系把这两个现实的抽象联系起来,这样我们就能设计出不孤立的类,而是和其他类有联系的类。

    多态

    多态:用一种解决方案来解决对一类问题,对于不同的事物解决途径和结果不同。在C++中实现多态性有三种方法,分别是:虚函数,函数重载和运算符重载。这三种方法大家都可以看到我们解决问题的初衷是一样的,都是利用同名函数,同名的运算符号,这抽象出来也就是解决问题的方法,但是对于不同的事物的反应却是不同的,例如:当用一个getPadNumber()方法来得到普通自行车和双人自行车的坐垫数量的时候,返回的结果是一个和两个,这就是具体的事物返回的结果不同。

    展开全文
  • OOP编程思想解读

    千次阅读 2018-12-17 22:08:49
    【编程的面向过程和面向对象两种思想此处偏向后者】 面向过程就是分析出解决问题所需要的步骤,然后...面向过程(功能、结构化、模块化)编程思想的缺点 1.软件重用性差 重用性是指同一事物不经修改或稍加修改就可...

    【编程的面向过程和面向对象两种思想此处偏向后者】

    • 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
    • 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

    面向过程(功能、结构化、模块化)编程思想的缺点

    1.软件重用性差

    重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。软件重用性是软件工程追求的目标之一。

    2.软件可维护性差

    软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。

    3.不能满足用户需要

    用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。

    用结构化方法开发的软件,其稳定性、可修改性和可重用性都比较差,这是因为结构化方法的本质是功能分解,从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,这样一层一层的分解下去,直到仅剩下若干个容易实现的子处理功能为止,然后用相应的工具来描述各个最低层的处理。因此,结构化方法是围绕实现处理功能的“过程”来构造系统的。然而,用户需求的变化大部分是针对功能的,因此,这种变化对于基于过程的设计来说是灾难性的。用这种方法设计出来的系统结构常常是不稳定的 ,用户需求的变化往往造成系统结构的较大变化,从而需要花费很大代价才能实现这种变化。

    产生了OOP编程思想

    OOP核心思想:封装,继承,多态。

    理解:

    对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

    基本思想:把组件的实现和接口分开,并且让组件具有多态性。

    概念:

    OOP是九十年代才流行的一种软件编程方法。它强调对象的“抽象”、“封装”、“继承”、“多态”。我们讲程序设计是由“数据结构”+“算法”组成的。从宏观的角度讲,OOP下的对象是以编程为中心的,是面向程序的对象。我们今天要讲的OOD是面向信息的对象,是以用户信息为中心的。

    对象的产生

    一、是以原型(prototype)对象为基础产生新的对象。

    二、是以类(class)为基础产生新对象。

    封装

    封装:让抽象的事物保护自身的状态,防止非其他事物对其进行错误的状态改变操作。我们抽象完一个事物后,可能在特定的条件下,其本身的状态需要改变,但是这个改变并允许其他的事物来进行,这样的改变只允许这个事物认同的操作域来进行,可以是该事物本身,也可以是它信任的其他事物。这样我们就能对我们抽象完的每个事物进行自身数据的保护

    继承

    继承:让抽象出来的事物具有本应该具有的联系。我们能用类来描叙一个抽象的事物,同时能用对象来描叙具体的事物,但是这些事物都是独立的,彼此之间没有应该有的联系,这样的孤立设计并不符合现实逻辑,让事物之间的联系得到描叙,我们就需要继承,例如:发明自行车的人并不是一开始就发明了多人自行车,这些都是从双轮自行车演变和发展而来,但是他们都有共同的特点,有轮子,有车架子,等等。让我们用继承的关系把这两个现实的抽象联系起来,这样我们就能设计出不孤立的类,而是和其他类有联系的类。

    多态

    多态:用一种解决方案来解决对一类问题,对于不同的事物解决途径和结果不同。在C++中实现多态性有三种方法,分别是:虚函数,函数重载和运算符重载。这三种方法大家都可以看到我们解决问题的初衷是一样的,都是利用同名函数,同名的运算符号,这抽象出来也就是解决问题的方法,但是对于不同的事物的反应却是不同的,例如:当用一个getPadNumber()方法来得到普通自行车和双人自行车的坐垫数量的时候,返回的结果是一个和两个,这就是具体的事物返回的结果不同。

    展开全文
  • OOP 所有的编程语言都提供抽象机制。可以认为,人们能够解决问题的复杂性...·OOP思想的实质程序可以添加新类型的对象使自身适用于某个待解决的问题。因此,在阅读解决方案代码的同时,也是在阅读问题的表述。即...

    OOP

    所有的编程语言都提供抽象机制。可以认为,人们能够解决问题的复杂性直接取决于抽象的类型和质量
    ·例如汇编语言和一些(非OOP)其他语言「如:BASIC、C等」都是主要针对计算机结构的抽象,所以在使用这些语言编程时,我们必须设法找到机器模型实际待解问题模型的关联。
    ·OOP思想的实质程序可以添加新类型的对象使自身适用于某个待解决的问题。因此,在阅读解决方案代码的同时,也是在阅读问题的表述。即:只对问题进行抽象。


    每个对象都有一个接口

    ·每个对象都只能满足某些请求,这些请求由对象的接口所定义,决定接口的是类型


    每个对象都提供服务

    ·将对象想象为服务提供者,程序本身也是向用户提供服务,它(程序本身)将通过调用其他对象提供的服务来实现这一目的。
    · 所以,我们的目标是从现有代码库中寻找(优先)和自己创建能够提供理想服务的一系列对象。


    被隐藏的具体实现

    ·类创建者构建的类,只向客户端程序员暴露必须的部分,而隐藏其它部分(即访问控制)。

    Reason1: 让客户端程序员无法触及他们不该触及的部分。
    Reason2: 允许类创建者可以改变类内部的工作方式而不必担心会影响到客户端程序员。


    实现复用

    method 1: 直接使用该类的对象。
    method 2: 组合产生新类(可以在不干扰现有客户端代码的情况下修改其成员)。


    继承

    [继承现有类型时,便创建了新类型。有两种方法使得新类型与基类产生差异]
    method1: (增加)直接在子类中添加新方法,即:子类“像是一个”父类。
    method2: (覆盖)只改变基类现有方法的行为,因为它和基类具有完全相同的借口,所以它和基类是“是一个”的关系。


    向上转型&单根继承结构

    ·向上转型后,能发出什么请求(能点出来什么)取决于基类是否有该接口,具体执行什么方法取决于对象的具体类型。
    ·单根继承(除C++外的所有OOP语言都是这样),简化参数传递、垃圾回收器的实现、异常处理等。


    参数化类型

    ·容器:一种持有其他对象引用的对象,如java中的List,Map,Set等。

    ·在使用容器时,一般有两种储存方案
    一是在置入时,将所有的存储对象向上转型为一个更泛化的类型,这样做虽然是安全的,但可能会丢失掉对象的许多实用接口;
    二是从容器获取对象时,将其向下转型为将它置入容器时具有实用接口的对象,向下转型是非常危险的。那么,我们需要创建这样的容器,它知道自己所保存的对象类型,从而不需要向下转型,以及消除犯错误的可能。这种解决方案被称为参数化类型机制,参数化类型就是编译器可以自动定制作用于特定类上的类。 在Java中,称它为泛型


    对象的创建和生命周期

    · 将对象置于堆栈或限域变量或静态存储区域来实现。这种方式将存储空间的非配和释放置于优先考虑位置。为了追求最大的执行速度,对象的存储空间和生命周期可以在编写程序时确定,但是牺牲了灵活性。
    · 在被称为堆堆内存池中动态的创建对象。对象的数量、生命周期、具体类型,只能在相关代码执行的那一刻才能确定。因为存储空间是在运行时被动态管理的,所以需要大量的时间在堆中分配存储空间,这一般要远远大于在堆栈中创建存储空间的时间,但其灵活性很高。
    「Java完全采用了动态内存分配方式」


    并发编程

    · 线程是一种为单一处理器非配执行时间的手段。这可以使许多任务“同时”运行。
    · 线程使得并发看起来非常简单,但有一个问题:共享资源。 解决问题的方法:某个任务使用某资源时将该资源锁定,完成其任务,然后释放资源锁,使其他任务可以使用这项资源。

    展开全文
  • oop编程思想

    2019-10-07 15:53:57
    oop编程思想:抽象、封装、继承、多态。 1、抽象: 数据抽象:类描述的对象的属性或状态 行为抽象:类描述的对象的行为或功能 举例: 时钟:Class 数据:int Hour,Minute,Second; 行为:SetTime();ShowTime...

    oop的编程思想:抽象、封装、继承、多态。

    1、抽象:

    数据抽象:类描述的对象的属性或状态

    行为抽象:类描述的对象的行为或功能

    举例:

    时钟:Class

    数据:int Hour,Minute,Second;

    行为:SetTime();ShowTime();Alarm();等

    2、封装:

    就是设置类的属性和方法对外界的权限。

    1 class clock
    2 {
    3     public:
    4         void SetTime(int hour,int minute,int second);
    5         void ShowTime();
    6     private:
    7         int Hour,Minute,Second;
    8     
    9 }

    Clock类有两个public方法,相当于两个外部接口,外界只能通过这两个接口对数据进行操作。它的三个属性值是私有的,外界不能操作。由此实现了对数据的封装。

    3、继承:

    子类继承父类(基类),继承父类所有的功能,并且可以创建自己新的属性和方法,也可以重写父类的一些方法。总之,儿子比父亲功能要强大。

    4、多态:

    一个类中功能相同的一些方法共用一个方法名。

    转载于:https://www.cnblogs.com/nannanITeye/p/3275649.html

    展开全文
  • Java的OOP编程思想

    千次阅读 2018-05-27 23:32:16
    (1)OOP--面向对象编程(Object Oriented Programming): 世界是由一个个对象组成的,因此面向对象的思维方式更加接近现实世界,面向对象编程的组织方式也更加贴近现实世界。面向对象以对象为中心,将对象的内部组织...
  • 世界是由一个个对象组成的,因此面向对象的思维方式更加接近现实世界,面向对象编程的组织方式也更加贴近现实世界。面向对象以对象为中心,将对象的内部组织与外部环境区分开来,将表征对象的内部属性数据与外部隔离...
  • JavaScript - OOP编程思想

    千次阅读 2019-07-17 15:39:49
    一段话赘述OOP编程思想 把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inherit)实现类的特化(specialization)与泛化...
  • 使用OOP编程思想实现自由落体运动程序网络上有很多关于Flash模拟实现.docx
  • OOP编程思想 即封装 继承 多态 ##封装 封装:让抽象的事物保护自身的状态,防止非其他事物对其进行错误的状态改变操作。我们抽象完一个事物后,可能在特定的条件下,其本身的状态需要改变,但是这个改变并允许其他...
  • Java OOP编程思想学习之我见
  • 1.OOP即面向对象的编程,它将系统各功能封装为对象,通过对象的继承和多态,从而获得强大的代码复用能力,极大地提高了系统设计能力。但是有时,无法通过OOP避免一些重复的冗余代码。(例如,在一个JavaEE多层系统中...
  • 在java中三种编程思想(OOA,OOD,OOP)

    千次阅读 2020-01-03 16:26:35
    在java中三种编程思想:OOA,OOD,OOPOOA一、OOA的主要原则。二、面向对象分析产生三种分析模型三、OOA的主要优点四、OOA方法的基本步骤OOD一、OOD背景知识二、OOD到底从哪儿来?三、OOD和传统方法有什么区别?四、OOD...
  • 然而,没有OO的特质,依然不妨碍我们的PHP开发人员运用这种优秀的编程思想,一些含有伪OO设计的面向过程代码依然出现在我们的项目中,但是由于本质上仍是面向过程的,可读性不是很好。 实现面向对象,首先需要知道...
  • 《冒号课堂》以课堂对话的形式,借六位师生之口讲述...下篇侧重阐发软件设计思想,其中在范式上以OOP为主,在语言上以C++、Java和C#为主。全书寓庄于谐,深入浅出,既可开阔眼界,又能引发思考,值得编程爱好者品读。
  • 开头省略1000字,哈哈,开始讨论OOP编程思想啦~ 我来翻译一下OOP吧(面向对象编程)  最近一直在看C++的一本书,看到书中有这样一句话(我按我的意思概括一下哈):OOP是一种编程思想,和具体的编程语言无关。...
  • 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。 核心思想:封装,继承,多态. OOP ...
  • 本文将从面向对象编程思想是如何解决软件开发中各种疑难问题的角度,来讲述我们面向对象编程思想的理解,梳理面向对象四大基本特性、七大设计原则和23种设计模式之间的关系。软件开发中疑难问题:软件复杂庞大很多...
  • OOP的核心思想是什么?

    万次阅读 2018-03-27 09:41:26
    面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。核心思想:封装,继承,多态. OOP ...
  • [编程思想] POP OOP AOP

    2019-06-25 22:23:21
    编程思想】与语言无关,是一种程序设计思想 面向过程编程 面向对象编程 面向切面编程 POP(Procedure Oriented Programming) OOP(Object Oriented Programming) AOP(Aspect Oriented Programming) ...
  • 本书是以编程范式和抽象机制为主线阐述编程设计思想的图书。它以编程语言为形、以编程范式为神、以抽象机制为本,采用课堂对话的形式讲述编程要义,深入浅出、寓教于乐。其中编程范式以OOP为重点,编程语言以C++、...
  • 编程范式与OOP思想

    2019-01-04 20:25:05
    一本讲OOP的书,和语言无关,修的是内功。要是有人能这样给我上课就好了啊!
  •  OOP,面向对象编程,面向对象,就充分运用类和对象。每一个方法,每一个对象,都可以通过一个自己定义的类来构造,调用。我第一次自己领悟到这个精髓,不是老师说的把五子棋看作是一个对象,而是从判断输赢的方法...
  • 就是面向对象 就像jq,咱们知道jq可以用$(".a")来获取一个jq的dom对象,咱们学习jq不需要去学习jq是怎么去获取dom对象的,只需要学习 用jq获取对象的那个操作就ok了,那么jq是不是就是用面向对象编程思想来编写的一...
  • java oop思想编程思想

    2009-03-02 13:31:00
    在栈空间定义局部变量;堆空间分配实例;调用方法的时候,给形参分配一空间,和局部变量等同,方法调用叫值传递; 方法执行完毕后,为该方法所配的内存空间也会清除; 基础类型的变量一块内存,引用类型的变量两块;...
  • oop思想:封装、继承、多态 把组件实现和接口分开,并且让组件具有多态性 面向对象编程是一种解决软件复用的设计和编程方法,这种方法把软件中相近相似的操作逻辑和操作应用数据、状态以类的形式描述出来,以...
  • OOA、OOD、OOP 区别与思想

    千次阅读 2019-09-09 10:35:19
    变成中 对于OO又不知道的同学的嘛?不知道的要思考了,有些老司机也可能一下子不清楚,忙于码代码?这不是借口哦。 OO (Object Oriented)面向对象 那么OOA、OOD、OOP有表示什么呢?...OOP =>...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,507
精华内容 14,602
关键字:

oop编程思想