类和对象

类的多态的理解和应用场景

▼魔方 西西 提交于 2019-11-26 02:53:37
课上的理解 用例子说明: class People(object): # 先定义一个基类 def talk(self): # 基类的talk方法,我们不希望被调用,写一个会抛出错误的代码 "如果基类的这个方法被调用,就抛出一个错误" raise NotImplementedError("Subclass must implement abstract method") class Chinese(People): # 这个是子类 def talk(self): # 重构talk方法 print("你好,世界") class American(People): def talk(self): print("Hello World") # 如果调用了基类的方法,会根据raise里定义的,抛出一个错误。去掉下面的注释测试一下 #p1 = People() # 实例化一个基类 #p1.talk() # 调用基类的talk方法 # 实例化2个对象 c1 = Chinese() a1 = American() # 通过子类调用自己的方法当然没问题。要用多态就是要使用统一的接口来实现这2条命令 c1.talk() a1.talk() # 多态是要用父类调用子类 #People.talk(c1) # 这样是最好的,真正的直接实现多态的方法,但是Python不支持 #People.talk(a1)

java对象和类

你离开我真会死。 提交于 2019-11-26 00:27:43
Java作为一种面向对象语言。支持以下基本概念: 多态 继承 封装 抽象 类:类是一个模板,它描述一类对象的行为和状态。 对象:对象是类的一个实例( 对象不是找个女朋友 ),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 实例 方法 重载 Java中的对象   现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。 拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。   对比现实对象和软件对象,它们之间十分相似。 软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。 Java中的类   类可以看成是创建Java对象的模板。   通过下面一个简单的类来理解下Java中类的定义:    public class Dog{ String breed; int age; String color; void barking(){ } void hungry(){ } void sleeping(){ } }    一个类可以包含以下类型变量: 局部变量 :在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁

9 - 类和对象

随声附和 提交于 2019-11-25 19:30:24
类和对象基本概念 1)类、对象、成员变量、成员函数 2)面向对象三大概念:封装、继承、多态 封装(Encapsulation) 封装是面向对象程序设计最基本的特性。把数据(属性)和函数(操作)合成一个整体。把客观的事物抽象成类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏(把属性和方法进行封装,对属性和方法进行访问控制)。 C++中类的封装:成员变量,C++中用于表示类属性的变量;成员函数,C++中用于表示类行为的函数。 在C++当中可以给成员变量和成员函数定义访问级别,Public修饰的成员变量和成员函数可以在类的内部和类的外部进行访问。Private修饰的成员变量和成员函数只能在类的内部被访问。 在使用struct定义类时,所有的成员的默认属性为public。在使用class定义类时,所有的成员默认的属性为private。我们常使用class定义类。 对象的构造和析构 创建一个对象时,经常需要某些初始化工作,为了解决这个问题,C++编译器提供了构造函数来处理对象的初始化。构造函数是一种特殊的成员函数,与其他的成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。 构造函数和析构函数的概念 构造函数 在C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数被叫做构造函数。构造函数在定义时可以有参数

面向对象介绍

跟風遠走 提交于 2019-11-25 19:08:45
面向对象 一、什么是面向对象 1.1 面向过程编程思想 1.2 面向对象编程思想 二、如何产生对象 2.1 什么是类 2.2 如何定义类 2.2.1 函数的名称空间和类的名称空间的区别 三、什么是对象 2.3 类的操作 四、类和对象的操作:增、删、查、改 4.1 查看类和对象的名称空间 4.2 类和对象的属性(类中的变量)操作 4.2.1 查找类和对象的属性 4.2.2 增加类和对象中的属性 4.2.3 修改类和对象中的属性 4.2.4 删除类和对象中的属性 五、类中的数据属性(类中的变量) 六、类中的方法(类中的函数) 七、对象属性的查找顺序 八、对象绑定方法的特殊之处 九、一切皆对象 TOC 面向对象 一、什么是面向对象 注意:编程思想仅仅是一门思想,与任何技术无关。 面向对象是一门编程思想 1.1 面向过程编程思想 核心是 过程 二字,过程指的是解决问题的步骤,即先干什么再干什么 基于该编程思想编写程序,就好比在设计一条工厂流水线,一种机械式的思维方式。 优点 将复杂的问题流程化,进而简单化 缺点 牵一发而动全身,程序的可扩展性差 1.2 面向对象编程思想 核心是 对象 二字,对象指的是 特征与技能 的结合体。 基于该编程思想编写程序,就好比在创造世界,一种 上帝式 的思维方式。 优点 可扩展性高 缺点 编写程序的复杂程度比面向过程高 二、如何产生对象