面向对象程序设计

077 面向对象编程

让人想犯罪 __ 提交于 2019-11-28 16:11:10
一、面向过程的编程 面向过程编程的核心是过程二字,过程指的是解决问题的步骤,即先干什么在干什么然后干什么。。。 基于面向过程编程的思想,编写程序好比在设计一条流水线,是一种机械式的思维方式 优点:复杂的问题流程化,进而简单化 缺点:扩展性差 二、面向对象编程 你可以把你自己想象成如来佛祖,然后你想找四个人去取经,所以你就去找了四个人取经。你找来了四个普通人准备让他们去取经,但是这四个人不是猪八戒、也不是孙悟空……所以你给一个普通人加了一个猪耳朵、给了他九齿钉耙;给了另外一个普通人毛脸雷公嘴、给了他一根棍子……所以现在有了猪八戒、孙悟空、沙悟净和唐僧,而现在的这四个角色就是我们所讲的对象。 面向对象编程的核心是对象二字,对象是特征与技能的结合体。 基于面向对象编程的思想编写程序,就好比是在创造一个世界,你就是这个世界的上帝,是一种上帝式的思维方式。 优点:可扩展性强 缺点:编程的复杂性高 来源: https://www.cnblogs.com/xichenHome/p/11414715.html

OOP(面向对象编程)

三世轮回 提交于 2019-11-28 10:06:39
原文链接:https://blog.csdn.net/qq_38526635/article/details/81319127 OOP编程思想 OOP核心思想: 封装,继承,多态 。 理解: 对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。 oop的基本思想:把组件的实现和接口分开,并且让组件具有多态性。 oop概念呢: OOP是九十年代才流行的一种软件编程方法。它强调对象的“抽象”、“封装”、“继承”、“多态”。我们讲程序设计是由“数据结构”+“算法”组成的。从宏观的角度讲,OOP下的对象是以编程为中心的,是面向程序的对象。我们今天要讲的OOD是面向信息的对象,是以用户信息为中心的。 对象的产生: 一、是以原型(prototype)对象为基础产生新的对象。 二、是以类(class)为基础产生新对象。 封装 封装:让抽象的事物保护自身的状态,防止非其他事物对其进行错误的状态改变操作。我们抽象完一个事物后,可能在特定的条件下,其本身的状态需要改变,但是这个改变并允许其他的事物来进行,这样的改变只允许这个事物认同的操作域来进行,可以是该事物本身

001 前言

夙愿已清 提交于 2019-11-28 05:42:14
前言 一> 本书目的。 这是一本思想层面的书,主要是向读者展示,专业程序员是如何面向对象编程的?设计师是如何面向设计编 程的?逐步引导读者从控件编程到对象编程再到业务设计。 二>内容结构。 同事跟我说过一句话,所谓门坎,跨过了就是门,跨不过就是坎。在介绍本书内容之前,先带领大家了解一下从拖拉控件编程到面向设计编程的过程中,究竟有哪些坎,本书的目的是带你跨过那些坎,清楚了有哪些坎,大抵也就清楚了本书要讲些什么内容了。 大部分人将程序员分为码农和设计师,对此我是认同的,只是,什么是码农,什么是设计师,各有什么特点,从码农到设计师的瓶颈障碍是什么,要如何才能突破瓶颈才能从码农登堂入室设计师。如果回答不了这些问题,说明分类不具指导意义。如果码农指的是拖拉控件编程的程序员,那么,从码农到设计师,有两个障碍,第一个障碍是面向对象编程,这是技能问题,第二个障碍是用面向对象的思想化解业务逻辑,这是思想问题。细心的读者可能会发现,化解业务逻辑的工具是面向对象的思想,那么,想要掌握业务化解是不是得先学会面向对象编程?我欣喜地告诉您,是的!而且,掌握面向对象编程不是那么容易的一件事情。因此,根据瓶颈障碍,我将程序员分三类。 一类是业余程序员,他们写程序是,首先开个窗体,再拖拉控件做好界面,再编写代码实现功能。他们的特点是,先做界面后写功能。这类程序员,是业余程序员,他们写程序是面向过程编程。

python面向对象编程OOP

爱⌒轻易说出口 提交于 2019-11-28 02:56:06
学习自廖雪峰 https://www.liaoxuefeng.com/wiki/1016959663602400/1017496679217440 一、类与实例 面向对象的设计思想是抽象出Class,根据Class创建Instance。 class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.score)) __init__下是类的 属性 ,print_score()是类的 方法 ,self指向创建的实例本身。在创建实例的时候, self 不需要传,Python解释器自己会把实例变量传进去。 二、访问限制 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的 name 、 score 属性。 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线 __ ,在Python中, 实例的变量名如果以 __ 开头 ,就变成了一个私有变量(private),只有内部可以访问,外部不能访问,所以

27-面向对象编程

廉价感情. 提交于 2019-11-27 16:08:43
面向对象编程 面向对象编程:Object Oriented Programming,简称OOP,是一种程序设计方法。 面向对象面向过程区别 完成自我介绍功能,面向过程完成功能 stu_a = { “name”:“A” “age”:18, “hometown”:“东北” } stu_b = { “name”:“B” “age”:19, “hometown”:“山东” } stu_c = { “name”:“C” “age”:20, “hometown”:“河北” } def stu_info(stu): # 自我介绍 for key,value in stu.items(): print(“key=%s,value=%d”%(key,value)) stu_info(stu_a) stu_info(stu_b) stu_info(stu_c) 接下来我们用面向对象的思想来完成功能 stu_a = Student(个人信息) stu_b = Student(个人信息) stu_c = Student(个人信息) stu_a.info() stu_b.info() stu_c.info() 面向过程:根据业务逻辑从上到下写代码,要面面俱到都要思考到 面向对象:讲数据与函数绑定到一起,进行封装。减少重复代码的重写过程,找一个能完成这个功能的哥们来完成

怎么理解js的面向对象编程

我的未来我决定 提交于 2019-11-26 23:56:24
面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中对象:无序属性的集合,其属性可以包含基本值、对象或者函数。可以简单理解为JS的对象是一组无序的值,其中的属性或方法都有一个名字,根据这个名字可以访问相映射的值(值可以是基本值/对象/方法)。 官方解释 原型模式如类模式一样,都是是一种编程泛型,即编程的方法论。另外最近大红大紫的函数编程也是一种编程泛型。JavaScript之父Brendan Eich在设计JavaScript时,从一开始就没打算为其加入类的概念,而是借鉴了另外两门基于原型的的语言:Self和Smalltalk。   既然同为面向对象语言,那就得有创建对象的方法。在类语言中,对象基于模板来创建,首先定义一个类作为对现实世界的抽象,然后由类来实例化对象;而在原型语言中,对象以克隆另一个对象的方式创建,被克隆的母体称为原型对象。 一、理解对象: 第一种:基于Object对象 var person = new Object(); person.name = 'My Name'; person.age = 18; person.getName = function(){ return this.name; } 第二种

Python3.5——面向对象编程

走远了吗. 提交于 2019-11-26 12:49:40
1、面向过程与面向对象的比较 (1)面向过程编程(procedural programming) 面向过程编程又被称为:top-down languages,程序从上到下 一步步执行,从头到尾的解决问题。 基本设计思路为:程序一开始是解决一个大问题,然后把大问题分解成多个小问题或子过程,这些小问题执行的时候再继续分解, 直到小问题足够简单到可以在一个小范围内解决。 缺点:若程序要进行修改,则修改的部分依赖的各个部分也要修改,这样会发生一连串的影响,随着程序越来越大,编程方式的维护难度也会越来越高。 所以,如果写一下简单的脚本,去做一些一次性的任务,用面向过程的方式是极好的,如果要处理的任务是复杂的,且需要不断迭代和维护的,还是用面向对象是最方便的。 (2)面向对象编程(oop) 面向对象编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述。 优点:可以使程序的维护和扩展变得简单,并且可以大大提高程序的开发效率;另外,基于对象的程序编程,可以让别人更加理解你的代码逻辑,是团队开发变得更加从容。 核心的特征:世界万物皆对象,世界万物皆可分类。 a、类(class) 类:是对一类拥有相同属性的对象的抽象、蓝图、原型。在类中定义了这些对象都具备的属性、共同的方法。 b、对象(object) 对象:类实例化后的实例,一个类必须经过实例化方能在程序中调用。 一个类可以实例化多个对象

简单理解OOP——面向对象编程

放肆的年华 提交于 2019-11-26 12:35:35
OOP:面向对象编程 一. 什么是OOP 面向对象编程:Object-oriented Programming,OOP,面向对象程序设计。 面向对象编程是一种 计算机编程架构 ,他的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。 OOP使得程序更有重用性、灵活性和扩展性。OOP的核心思想是: 封装 、 继承 、 多态 (重点是 类 和 对象 )。 不同于POP(面向过程编程)的以过程为中心的编程思想,面向对象编程的中心思想是通过调用对象来实现想要实现的目的。 面向对象的思想: 是一种更符合我们思想习惯的思想; 可以将复杂的事情简单化; 将我们从执行者变成了指挥者。 二. OOP的特点 1. 封装 封装,简单来说就是将重复的代码通过一种方法,编程一个新的可以被我们直接调用的类,省去了繁复的编程过程。封装可以使得代码实现“ 高内聚、低耦合 ”,这种状态也是封装的基本目标。对用户来说,用户并不需要知道对象是如何进行各种操作的,用户只需要通过调用封装后类的对象来进行想要的操作即可。封装这种思想,大大简化了操作步骤,代码变得更加有效,复用性也更高。 封装还有另外一个目的,就是将不需要对外提供的内容都隐藏起来;把属性隐藏(private关键字),提供公共方法对其访问。这使得用户不能直接访问程序的详细细节,从而使得代码的 安全性 的到提高。 2. 继承

8.6 面向对象编程基础

淺唱寂寞╮ 提交于 2019-11-26 12:08:05
类和对象 简单的说,类是对象的蓝图和模板,而对象是类的实例。这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型)。当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做“类”的东西。 函数的写法 """ 标识 函数名字 (): 有冒号就要缩进一个tab 在Python中所有的函数都有返回值,如果你没有给予return则默认返回出None,如果你给予了,则返回你给予的值 """" def funcName(): . .... return .... """ 标识 类名 () : 有冒号就要缩进一个tab """ class className(object): ........ """ 1.导入库, import 库名 2. for 循环,如果计数的情况则使用 开始 结束 不长 range的区间是一个前闭后开. range(start,end,[step]) 3. 格式化输出 3.1 %-->%(),%d后接整型,%f后接浮点,%s后接字符串. 3.2 {}-->format(),它可以直接传入任何类型,然后格式化输出. 4.print 控制台(terminal)打印 4.1

面向对象编程简介

假如想象 提交于 2019-11-25 20:17:44
面向对象编程 一.什么是面向对象? 1 面向对象是一门编程思想 面向对象编程思想:核心是“对象”二字,对象指的是“特征与技能”的结合体 基于该编程思想编写程序,好比在创造世界,一种“上帝式”的思维方式 优点:可扩展性高 缺点:编写程序复杂度较高 与面向过程编程思想的对比 面向过程编程思想:核心是“过程”二字,过程指的是解决问题的步骤,即先干什么再干什么 基于该编程思想写程序,就好比在设计一条工厂流水线,一种机械式的思维方式 优点:将复杂的问题流程化,进而简单化 缺点:牵一发而动全身,程序的可扩展性差 注意: 编程思想仅仅是一门思想,与任何的技术无关。 2 定义类的语法 class(关键字) 类的名字 : #通过类名称空间的得到的字典取值 class OldboyStudent: #定义类,类名为OldboyStudent(类名使用驼峰体命名) school = 'oldboy' #定义相同的特征 def learn(self): #定义相同的技能,在类内部定义函数,会有一个默认参数self print('python真有趣...') print(OldboyStudent) print(OldboyStudent.__dict__) print(OldboyStudent.__dict__['school']) print(OldboyStudent.__dict__['learn