面向对象方法

Python__面向对象

丶灬走出姿态 提交于 2020-03-02 13:05:44
1、面向对象的基本知识 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装、继承和多态 2、类的成员 类的成员可以分为三大类:字段、方法和属性:         1、字段:普通字段、静态字段;         2、方法:普通方法、类方法、静态方法;         3、属性:普通属性 2.1、字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段 属于 对象 静态字段 属于 类 class Province: # 静态字段 country ='中国' def __init__(self, name): # 普通字段 self.name = name # 直接访问普通字段 obj = Province('河北省') print(obj.name) # 直接访问静态字段 print(Province.country) print(obj.country) 静态字段在内存中只保存一份 普通字段在每个对象中都要保存一份 2.2、方法 方法包括:普通方法、静态方法和类方法,三种方法在 内存中都归属于类 ,区别在于调用方式不同。 普通方法

Python面向对象——多态

邮差的信 提交于 2020-03-02 01:47:18
Python面向对象——多态 目标 多态 面向对象三大特性 1. 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中   定义类的准则 2. 继承 实现代码的重用 ,相同的代码不需要重复的编写   设计类的技巧   子类针对自己特有的需求,编写特定的代码 3. 多态 不同的 子类对象 调用相同的 父类方法 ,产生不同的执行效果    多态 可以 增加代码的灵活度   以 继承 和 重写父类方法 为前提   是调用方法的技巧, 不会影响到类的内部设计 多态案例演练 需求 1.在 Dog 类中封装方法 game   普通狗只是简单地玩耍 2.定义 XiaoTianDog 继承自 Dog,并且重写 game 方法   哮天犬需要在天上玩耍 3.定义 Person 类,并且封装一个 和狗玩 的方法   在方法内部,直接让 狗对象 调用 game 方法 class Dog ( object ) : def __init__ ( self , name ) : self . name = name def game ( self ) : print ( "%s 蹦蹦跳跳的玩耍..." % self . name ) class XiaoTianDog ( Dog ) : def game ( self ) : print ( "%s 飞到天上去玩耍..." % self .

java面向对象12_继承(inheritance)

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-02 00:12:53
1.继承的概念 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。从英文字面意思理解,extends的意思是“扩展”。子类是父类的扩展,现实世界中的继承无处不在,如下图所示: 上图中,哺乳动物继承了动物。意味着,动物的特性,哺乳动物都有;在我们编程中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类(也称作超类、基类、派生类等),子类会自动拥有父类所有可继承的属性和方法。 2.继承的使用 继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。 在Java之中,如果要实现继承的关系,可以使用如下的语法: class 父类 { } class 子类 extends 父类 { } 子类又被称为派生类,父类又被称为超类(Super Class)。 【示例】使用extends实现继承 // 父类:Person类 class Person { // 成员变量 private String name ; // set和get方法 public String

java面向对象13_方法重写(override)

女生的网名这么多〃 提交于 2020-03-01 23:42:26
1.方法的重写(override) 当父类的方法不能满足子类的需求时,我们可以在子类中重写父类的方法,重写也称为复写或者覆盖。 方法重写需要符合以下三个要点: == :方法名、形参列表必须相同。 <= :子类重写方法的修饰符权限必须大于等于父类被重写方法的修饰符权限。 ​ 父类的私有方法不能被重写,static修饰的方法不能被重写。 <= :子类的返回值类型和异常类型必须小于等于父类的返回值类型和异常类型。 如果父类被重写方法的返回值类型为基本数据类型、void和String类型,那么要求子类重写方法的返回值类型必须和父类被重写方法的返回值类型保持一致。 如果父类被重写方法的返回值类型为引用数据类型(不包含String类型), 那么要求子类重写方法的返回值类型必须和父类被重写方法的返回值类型保持一致,要么要求子类重写方法的返回值类型必须是父类被重写方法返回值类的子类。 【示例】方法重写案例 // 父类 class Parent { public void show ( ) { System . out . println ( "父类中的 show方法执行" ) ; } } // 子类 class Child extends Parent { // 子类重写父类的show方法 public void show ( ) { System . out . println ( "子类中的

Java面向对象特征之一 ~~~~多态

て烟熏妆下的殇ゞ 提交于 2020-03-01 21:28:41
1.多态性的理解: 可以理解为一个事物的多种形态。 2.何为多态性: 对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用),举例: Person p = new Man ( ) ; Object obj = new Date ( ) ; 3.多态性的使用:虚拟方法调用 有了对象的多态性以后,我们在编译期, 只能调用父类中声明的方法 ,但在运行期,我们 实际执行的是子类重写父类的方法 。 总结:编译,看左边;运行,看右边。 4.多态性的使用前提: ① 类的继承关系 ② 方法的重写 5.多态性的应用举例: 举例一: public void func ( Animal animal ) { //Animal animal = new Dog(); animal . eat ( ) ; animal . shout ( ) ; } 举例二: public void method ( Object obj ) { } 举例三: class Driver { //具体SQL开发商子类重写了SQL父类的步骤方法 public void doData ( Connection conn ) { //conn = new MySQlConnection(); //conn = new OracleConnection(); //规范的步骤去操作数据 conn . method1 (

面向对象的四大特性

别说谁变了你拦得住时间么 提交于 2020-03-01 19:36:33
封装(Encapsulation) 概念 :封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式(或者叫函数)来访问内部信息或者数据。 对于封装这个特性,需要编程语言本身提供一定的语法机制来支持。这个语法机制就是访问权限控制。 private、public 等关键字就是 Java 语言中的访问权限控制语法。private 关键字修饰的属性只能类本身访问,可以保护其不被类之外的代码直接访问。public关键字则是完全相反的作用。 封装的意义 对类中属性的访问权限做限制,约束外部对类内部的行为,避免外部错误的修改类中属性。 且,类仅仅通过有限的方法暴露必要的操作,可以提高类的易用性。调用者只需要了解有限的几个方法调用,而不需要了解太多背后的业务细节,用错的概率就会减小很多。 抽象(Abstraction) 概念 :封装主要讲的是如何隐藏信息、保护数据,而抽象讲的是如何隐藏方法的具体实现,让调用者只需要关心方法提供了哪些功能,并不需要知道这些功能是如何实现的。 在面向对象编程中,我们常借助编程语言提供的接口类(比如 Java 中的 interface 关键字语法)或者抽象类(比如 Java 中的 abstract 关键字语法)这两种语法机制,来实现抽象这一特性。 实际上,抽象这个特性是非常容易实现的

面向对象的程序员应该懂(学习)什么?

会有一股神秘感。 提交于 2020-03-01 13:49:20
首先,这里要把程序员的概念放宽一点,不管是分析的,还是搞设计的或者编码,测试的,都叫做程序员。也就是说,这里以程序员泛指所有软件实现过程中所涉及的所有人员。但是不包括如配置管理员,数据库管理员,测试工程师这样的职位。因为这里讨论的仅仅是软件的构建,与验证、管理等其它周边事务都无关。 第一个要考虑的就是并发编程。比如多线程,它是否真是程序员本应该涉及的领域。程序员是否真的应该费大量精力去研究它,以便然后才能在现实工作中正确地使用它? 这是形式语义学讨论的范围。形式语义学讨论的就是语言元素的语义。其实我觉得它应该讨论得更多一点,比如比语言层次更高一点的如库(Library),平台,操作系统服务,本地服务,协议等的语义。 程序员应该干什么?? 根据不重复发明轮子的原则,所有编程中的共性部分都不应该是程序员的职责。程序员只应该对商业逻辑负责。程序员当然还要负责这些逻辑的运行时实现效果。也就是说,程序员负责的部分包括两个: 1,程序的静态特性; 2,程序的动态特性。 简而言之,程序员应该是最终的产品责任人。这并不意味着程序员会负责整个系统所有的部件质量,也不意味着程序员只负责自己编写的程序部分。程序员对于因需要引入的任何系统构件都拥有责任。但这种责任是一种使用者责任,是区别于开发这些构件的生产者责任的。这就象我买了个手机,手机不是我生产的,但我仍然对它的质量负有责任:使用者责任

Python入门(目录全览)

人盡茶涼 提交于 2020-03-01 10:19:36
文章目录 ==已更新到第二篇完结== Python入门(目录全览) 第一篇 计算机基础 第二篇 Python解释器和集成环境 第三篇 Python基础 第四篇 Python进阶 第五篇 文件处理 第六篇 函数基础 第七篇 函数进阶 第八篇 模块基础 第九篇 Python常用模块 第十篇 面向对象基础 第十一篇 面向对象进阶 第十二篇 面向对象高阶 第十三篇 网络编程 第十四篇 并发编程 第十五篇 MySQL数据库 已更新到第二篇完结 Python入门(目录全览) 第一篇 计算机基础 002 计算机基础之编程 003 计算机组成原理 004 计算机操作系统 005 编程语言分类 006 网络的瓶颈效应 007 计算机基础小结 第二篇 Python解释器和集成环境 008 Python和Python解释器 009 Python解释器安装 010 Anaconada安装 011 Python解释器镜像源修改 012 执行Python程序的两种方式 013 Python的IDE之Pycharm的使用 014 Python的IDE之Jupyter的使用 015 pip的使用 第三篇 Python基础 017 变量 018 常量 019 Python变量内存管理 020 变量的三个特征 021 花式赋值 022 注释 023 数据类型基础 024 数字类型 025 字符串类型 026 列表类型

面向对象程序概述

时间秒杀一切 提交于 2020-03-01 06:07:30
面向对象程序概述 什么是程序? 程序就是可以被计算机执行的用于解决问题的的一系列计算机指令 在编程过程中,有 两种常见的编程思想 : 1、面向过程编程思想(代表语言:C) 面向过程是一种自上而下的设计方式,编程过程为: 1》获得用户输入的数据 2》对数据进行运算并做出某种决策 3》在屏幕显示计算结果 2、面向对象编程思想(C++、Java等等) 面向对象首先需要将问题分解成各个对象,从对象的属性和行为,以及对象之间的关系进行分析 **区别:**面向过程是一种按照编程语言的思路思考问题,而面向对象是一种抽象度比较高的编程方法,它的目标使模块的抽象度更高,可复用性好; 在面对对象编程中,有三大特征: 1》封装:把数据和操作数据的函数组织在一起,使得程序更加紧密,提高了类内部数据的安全性; 2》继承:增强了软件的可扩充性,以及代码的重用性; 3》多态:使得设计人员在设计程序过程中可以更好对问题进行更好的抽象,有利于代码的维护和可重用; 对象: 什么是对象呢,任意一个对象都包括属性和行为;其中属性用于描述客观事物的静态特征,名词,而行为表示事务的动态特征;eg:人*(person),他的属性就包括姓名、性别、身高、体重等,行为就包括走路、说话、打招呼、学习和工作等; 类: 类是对客观世界中具有相同属性和行为的一组对象的抽象,它为属于该类的全部对象提供了统一的抽象描述,其内容包括属性和行为

面向对象的三大特性

人盡茶涼 提交于 2020-03-01 06:00:22
学习 Java 的小伙伴都知道,Java 是面向对象的,谈起面向对象,当然离不开 面向对象的三大特性:封装、继承、多态 封装 很好理解,比如我们平时去餐馆吃饭的时候,我们是看不到厨师的后台操作的,点完饭后,厨师根据我们的需求,将菜肴做好,但是我们是看不到做饭的过程的,这就是封装,把厨师做饭的过程封装起来,不对外显现,在 Java 中,我们也是这样,有时候不需要向用户展现某一部分我们是如何实现的,就可以把这部分封装起来,这样,类的调用者也不需要具体了解某个实现过程,减轻了类的调用者的负担,而实现封装,我们就可以用到之前提到过的 private 关键字 继承 现实生活中,我们经常听到儿子继承父亲的财产,对应到 Java 中也是一样的,子类(派生类)继承父类(基类、超类),子类拥有父类的属性和父类的方法,和财产继承一样,而继承我们是有语法的, 使用到了 extends 关键字 class 子类 extends 父类 { } extends 关键字 Java中使用extends关键字实现类的继承机制 通过继承子类自动拥有了基类(superclass)的所有成员(成员变量和成员方法) Java只支持单继承 一个子类只能有一个基类,一个基类可以派生出多个子类 继承有以下需要注意的: 在 Java 中,继承是通过 extends 关键字来实现的,不可以使用 protected 和 private