13.1 引言
1.类与实例
类与实例相互关联着:类是对象的定义,而实例是“真正的实物”,它存放了类中所定义的对象的具体信息。
新式类和经典类声明的最大不同在于,所有新式类必须继承至少一个父类,参数bases可以是一个(单继承)或多个(多重继承)用于继承的父类。
object是所有类之母,如果你的类没有继承任何其他父类,object将作为默认的父类。它位于所有类继承结构的最上层。如果你没有直接或间接的子类化一个对象,那么你就定义了一个经典类。
创建一个实例的过程称作实例化。
你有一个本身没有任何属性的类,使用它仅可以对数据提供一个名称空间,这样的类仅作为容器对象来共享名称空间。
2.方法
类的功能有一个更通俗的名字叫方法。在Python中,方法定义在类定义中,但只能被实例所调用。也就是说,调用一个方法的最终途径必须是这样的:(1)定义类(和方法);(2)创建一个实例;(3)用这个实例调用方法。
self参数在所有的方法声明中都存在。这个参数代表实例对象本身,当你用实例调用方法时,由解释器悄悄地传递给方法的,所以你不需要自己传递self进来,因为它是自动传入的。
在其他语言中,self成为"this"。
一般的方法会需要这个实例(self),而静态方法或类方法不会,其中类方法需要类而不是实例。
__init__()类似于类构造器,构造器仅是一个特殊的方法,它在创建一个新的对象时被调用。在Python中,__init__()实际上不是一个构造器。你没有调用"new"来创建一个新对象。(Python根本就没有"new"关键字)。取而代之,Python创建实例后,在实例化过程中,调用__init__()方法,当一个类被实例化时,就可以定义额外的行为。
4.创建实例(实例化)
实例化调用,它会自动调用__init__()。self把实例对象自动传入__init__()。
7. 创建子类
靠继承来进行子类化是创建和定制新类类型的一种方式,新的类将保持已存在类所有的特性,而不会改动原来类的定义。
每个类最好自己定义它自己的构造器,不然,基类的构造器会被调用。然而,如果子类重写基类的构造器,基类的构造器就不会被自动调用了——这样,基类的构造器就必须显式写出才会被执行。
这里我们要显式传递self实例对象给基类构造器,因为我们不是在该实例中而是在一个子类实例中调用那个方法。因为我们不是通过实例来调用它,这种未绑定的方法调用需要传递一个适当的实例(self)给方法。
类名通常由大写字母打头。数据值应该使用名词作为名字,方法使用谓词(动词加对象)。数据项是操作的对象、方法应当表明程序员想要在对象进行什么操作。
分享到:
相关推荐
第1章讨论了面向对象编程(OO编程)的原因,并将其与现实世界中的事物进行了类比。这有助于读者理解OO编程的概念和基本原理。 第2章介绍了面向对象编程的基础概念和步骤,为读者理解后续更复杂的概念打下基础。 第...
多态是 Java 面向对象编程的第三大特征,通过重载、重写与覆盖,实现不同类的不同形态特征。多态使得类可以根据不同的情况表现出不同的形态,从而提高代码的灵活性和可维护性。 四、类和对象 类是 Java 面向对象...
总而言之,学习现代JavaScript面向对象编程,有助于开发者在认识这门语言演化的基础上,运用面向对象的设计和编程模式来构建更加健壮和可维护的JavaScript应用程序。同时,测试和调试是保证代码质量不可或缺的环节,...
十、面向对象编程的优点 面向对象编程的优点包括便于程序模拟现实世界中的实体、隐藏细节、对象的行为和属性被封装在类中、可重用等。 十一、数据类型 数据类型包括基本数据类型和引用数据类型。基本数据类型没有...
第13章 容器和泛型.pptx 第14章 流与文件(1).pptx 第14章 流与文件(2).pptx 第15章 网络编程.pptx 第1章 Java概述.pptx 第2章 Java基础.pptx 第3章 数组.pptx 第4章 类和对象(1).pptx 第4章 类和对象(2)....
2. **封装**:封装是面向对象编程的三大特性之一,它隐藏了对象的内部实现细节,只对外提供公共接口。源代码中可能通过访问修饰符(如private、public、protected)来实现数据封装。 3. **继承**:继承允许一个类...
面向对象编程技术第四章PPT资料.pptx 面向对象编程技术是现代软件开发中最重要的技术之一。本章节主要讲解面向对象编程技术的基本概念和实现方法。下面是从PPT资料中提取的知识点: 一、类与对象 * 类是具有相同...
资料目录.bat 源代码 第一章Delphi基础知识 第七章异常处理和程序调试技术 第三章Delphi面向对象编程思想 ...第十三章数据库编程 第十二章图形图像和多媒体技术 第十章菜单和工具栏 第四章Delphi基本组件编程1
面向对象的Java网络编程 \chap03 提供了本书第3章的范例源程序; \chap04 提供了本书第4章的范例源程序; \chap05 提供了本书第5章的范例源程序; \chap06 提供了本书第6章的范例源程序; \chap07 ...
第1章介绍了用于构建面向对象程序的不同类型C++组件,以及如何使用这些组件来构建多线程架构。第2、3、4章简要介绍进程、线程、多任务处理、多线程化、规划以及线程优先权的概念。第5章讨论进程间和线程间通信。第6...
本章节——第十一章案例,旨在通过实际操作来巩固和拓展学员对于面向对象编程的理解。 面向对象编程(Object-Oriented Programming,简称OOP)基于“对象”的概念,将数据和操作数据的方法封装在一起。在Java中,类...
S2实现Java面向对象编程1—16PPT的资料很可能是对这一主题的深入讲解,涵盖了OOP的基础到高级应用。 1. **类与对象**:在Java中,类是创建对象的模板,描述了对象的属性和行为。对象则是类的实例,具有特定的属性值...
面向对象程序设计(Java)第十三章例题代码-J7chapte13面向对象程序设计(Java)第十三章例题代码-J7chapte13面向对象程序设计(Java)第十三章例题代码-J7chapte13面向对象程序设计(Java)第十三章例题代码-J7...
《Visual C++ 面向对象编程教程》是王育坚编著的一本针对C++初学者的指导书籍,旨在帮助读者深入理解C++语言,特别是其面向对象编程(Object-Oriented Programming, OOP)的概念和技术。C++是一种强大的、通用的编程...
- **第13题**: BC - 面向对象编程中异常处理的重要性。 #### 编程二 - **第1题**: B - 类与对象的关系。 - **第2题**: B - 继承与多态的关系。 - **第3题**: A - 封装的好处。 - **第4题**: B - 多态性的实现机制。...
Java面向对象编程是Java语言的核心特性之一,由孙卫琴老师讲授的这门课程深入浅出地介绍了这一主题。课后答案集包含了对课程中习题的详细解答,是学习者巩固理论知识、提升实践技能的重要参考资料。下面将详细阐述...
希望通过电子书了解了本书第一版内容并对其感兴趣的读者能够购买《Java面向对象编程》最新的第二版,相信它一定不会让你失望。呵呵,这也算是对矢志投身中国Java编程普及教育的孙老师的一点支持吧。。。
Scala编程详解:数组操作之数组转换 共5页第11讲-Scala编程详解:Map与Tuple 共8页第12讲-Scala编程详解:面向对象编程之类 共12页第13讲-Scala编程详解:面向对象编程之对象 共9页第14讲-Scala编程详解:面向对象...
类是面向对象编程的基础,它定义了一组属性(数据成员)和行为(成员函数)。在MATLAB中,通过`classdef`关键字创建类。例如: ```matlab classdef MyClass properties property1 property2 end methods ...