C++之 面向对象基本原理

Object Oriented Programming

  • Objects send and receive messages(objects do things!)

Objects send messages

  • Messages are

-Composed by the sender

-Interpreted by the receiver//kouyi

-Implemented by methods//shishi

  • Messages
    • May cause receiver to change state
    • May return results

Object vs. Class

Object (cat)

Represent things,events, or concepts

Respond to messages at run-time

Classes(cat class)

Define properties of instances

Act like types in C++

OOP Characteristics

1.Everything is an object.

2.A program is a bunch of objects telling each other what to do by sending messages.

3.Each object has its own memory made up of other objects.

4.Every object has a type.

5.All objects of a particular type can receive the same messages.//正反理解

An object has an interface

The interface is the way it receives messages.

It is defined in the class the object belong to.

Functions of the interface

  • Communication
  • Protection

The Hidden Implementation

  • Inner part of an object,data menbers to present its state,and the actions it takes when messages is rcvd id hidden.
  • Class creators vs. Client programmers

-Keep client programmers‘ hands off portions they shoule not touch.

-Allow the class creators to change the internal working of the class without worrying about how it will affect the client programmers.

Encapsulation//封装

  • Bundle data and methods dealing with these data together in an object
  • Hide the details if the data and the action
  • Restrict only access to the publicized methods.
时间: 2024-10-12 20:06:00

C++之 面向对象基本原理的相关文章

iOS设计模式 - 适配器

效果 说明 1. 为了让客户端尽可能的通用,我们使用适配器模式来隔离客户端与外部参数的联系,只让客户端与适配器通信. 2. 本教程实现了适配器模式的类适配器与对象适配器两种模式,各有优缺点. 3. 如果对面向对象基本原理以及设计模式基本原理不熟悉,本教程会变得难以理解. 源码 https://github.com/YouXianMing/AdapterPattern // // BusinessCardView.h // Adapter // // Created by YouXianMing

iOS设计模式 - 策略

效果 说明 1. 把解决相同问题的算法抽象成策略(相同问题指的是输入参数相同,但根据算法不同输出参数会有差异) 2. 策略被封装在对象之中(是对象内容的一部分),策略改变的是对象的内容.如果从外部扩展了对象的行为,就不叫策略模式,而是装饰模式. 3. 策略模式可以简化复杂的判断逻辑(if - else) 4. 如果对面向对象基本原理以及设计模式基本原理不熟悉,本教程会变得难以理解. 源码 https://github.com/YouXianMing/StrategyPattern // // I

深入理解 Javascript 面向对象编程(转)

一:理解构造函数原型(prototype)机制 prototype是javascript实现与管理继承的一种机制,也是面向对象的设计思想.构造函数的原型存储着引用对象的一个指针,该指针指向与一个原型对象,对象内部存储着函数的原始属性和方法:我们可以借助prototype属性,可以访问原型内部的属性和方法. 当构造函数被实列化后,所有的实例对象都可以访问构造函数的原型成员,如果在原型中声明一个成员,所有的实列方法都可以共享它,比如如下代码: // 构造函数A 它的原型有一个getName方法 fu

深入理解Javascript面向对象编程

阅读目录 一:理解构造函数原型(prototype)机制 二:理解原型域链的概念 三:理解原型继承机制 四:理解使用类继承(继承的更好的方案) 五:建议使用封装类实现继承 六:理解使用复制继承 回到顶部 一:理解构造函数原型(prototype)机制 prototype是javascript实现与管理继承的一种机制,也是面向对象的设计思想.构造函数的原型存储着引用对象的一个指针,该指针指向与一个原型对象,对象内部存储着函数的原始属性和方法:我们可以借助prototype属性,可以访问原型内部的属

【菜鸟也疯狂UML系列】——面向对象技术

从软工开始,我们就开始接触面向对象了,接下来的学习资料好像都有提到面向对象,以后就要和她交朋友了,所以,我们就要对她了解多一点点. 一.何为面向对象? 面向对象(Object Oriented),是将现实世界映射成的一个个独立的对象,这些对象之间原本没有关系,只是加上一点魔术粉,她们就会相互传递消息,从而形成一个"过程".举个比较生动的例子:我韩梦甜,和刘文彬原本是两个八竿子打不着的人(一个南方,一个北方),可是在书法协会这个外力的作用下,我们相识相知相爱,传达爱意,从而形成了一个&q

【新秀疯狂UML系列】——面向对象的技术

从软质工作开始,我们来到与面向对象的接触,接下来的学习材料似乎已经提到了面向对象,在与她的朋友去一个.所以,我们必须知道她多一点点. 一.何为面向对象? 面向对象(Object Oriented).是将现实世界映射成的一个个独立的对象,这些对象之间原本没有关系,仅仅是加上一点魔术粉,她们就会相互传递消息.从而形成一个"过程". 举个比較生动的样例:我韩梦甜.和刘文彬原本是两个八竿子打不着的人(一个南方,一个北方).但是在书法协会这个外力的作用下,我们相识相知相爱,传达爱意.从而形成了一

结构化方法与面向对象方法的分析比较

软件开发方法指:在项目投资规模和时间限制内,设计.实现符合用户需求的高质量软件,根据软件开发的特点,提出的多种软件开发策略.在计算机软件领域,很多新的方法与技术都起源于程序设计语言,这种发展趋势具有十分重要的意义,它使那些富有生命力的新方法和新技术就此形成自己系统化的技术体系,它极大地推动了计算机软件技术的发展. 结构化方法和面向对象方法都是计算技术中常用的软件开发方法,两种开发方法目前都非常流行,选择哪一种方法要根据分析者的熟练程度和项目的类型而定.就目前而言,十全十美的开发方法是不存在的,真

Java设计模式之——面向对象六大原则

面向对象六大原则: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):开闭原则 设计模式六大原则(3):里氏替换原则 设计模式六大原则(4):依赖倒置原则 设计模式六大原则(5):接口隔离原则 设计模式六大原则(6):迪米特原则 设计模式六大原则(1):单一职责原则 单一职责原则的英文名称是 Single Responsibility Principle,缩写为 SRP.SRP 的定义是:就一个类而言,应该仅有一个引起它变化的原因.简单来说,一个类中应该是一组相关性很高的函数.数据的

JavaScript基础——面向对象的程序设计(一)创建对象的几种方式总结

简介 面向对象(Object-Oriented, OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.前面提到过,ECMAScript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. ECMA-262把对象定义为:"无序属性的集合,其属性可以包含基本值.对象或者函数."严格来讲,这就相当于说对象是一组没有特定顺序的值.对象的每个属性或方法都有一个名字,而每个名字都映射到一个值.正因为这样(以及其他将要讨论的原因),我们可以把E