如何理解Python 面向对象编程思想

如何理解Python 面向对象编程思想Python面向对象编程思想:从四个方面来理解1.宽泛的面向对象的概念举例说明面向过程:做一件事情,从头到尾,每一个细节都要关注,重点在于过程面向对象:做一件事情,用对象去做,不关心细节和过程,万物皆对象

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

从四个方面来聊面向对象

1. 宽泛的面向对象的概念 举例说明

面向过程:做一件事情,从头到尾,每一个细节都要关注,重点在于过程
	从西安到北京:西安-郑州-武汉-邯郸-邢台-北京

Jetbrains全家桶1年46,售后保障稳定

面向对象:做一件事情,用对象去做,不关心细节和过程,万物皆对象
	从西安到北京: 坐动车到北京

2. python中面向对象

有类:描述一类事物,一个抽象的概念,比如:人、动物、水果
有对象:是类的具象化比如:张三、李四、猫、狗
	特征(属性)
	功能行为(方法) 

元类-类-对象

3. python中面向对象的三大特征:

3.1 封装:面向对象编程的第一步—–>将 属性和方法 封装到一个抽象的 类 中
外界使用 类 创建 对象,然后让 对象 调用方法
对象方法的细节 都被 封装 在 类的内部
3.2 继承:子类可以拥有父类的属性和方法(减少代码的书写,提高代码的阅读性)

单继承
代码的传递性:孙子类中可以使用爷爷类型的方法
多继承
一个子类可以继承多个父类
特点:子类拥有所有父类的属性和方法

方法重写:
	概念:在子类中书写和父类同名的方法
	特点:在类中调用方法,如果在子类中找到,直接执行子类中的方法
            如果子类中没有找到这个方法,去父类中找,找到了就调用父类中的方法,
            如果父类中没有找到,则报错
私有方法和属性:
	语法格式:
		def __函数名(self):

		def __init__(self):
			self.__money = "自己猜"
	特点:
		不允许被外界访问,只能自己使用
		如果外界必须访问,那么可以提供一个公共的方法,访问私有属性 
3.3 多态:一个对象的多种形态(一父多子)
作用:增强代码的灵活性、提高代码的扩展性
条件:继承、方法的重写

4. 面向对象编程的设计

继承体系设计 有什么类 什么属性 封装到什么方法中去
比如:门 锁  人 ,把开门关门的方法 封装在谁的类之中?
    封装在门的类之中,(谁拥有数据谁就拥有操作数据的权利)而人相当于一个main方法 
    调用时:拿到门对象,调用门的开关门方法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/213531.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 谷歌浏览器如何重置?谷歌浏览器恢复默认设置?

    谷歌浏览器如何重置?谷歌浏览器恢复默认设置?

    2021年10月17日
  • java jersey 参数_Java Jersey使用總結

    java jersey 参数_Java Jersey使用總結关于作者马隆博(LenboMa),Java,JavascriptE-Mail:mlongboatgmail.com创建于:2013/07/26转载请注明出处:前言在短信平台一期工作中,为便于移动平台的开发,使用了JavaJersey框架开发RESTFul风格的WebService接口。在使用的过程中发现了一些问题并积累了一些经验。因此,做下总结备忘,同时也希望对有需要的同仁有好的借鉴和帮…

  • Unity Shader入门

    Unity Shader入门这篇文章是我在学习蛮牛的一套关于Shader教程(http://www.unitytrain.cn/course/96)后的简单总结,个人感觉这套教程并不是以高级Shader编程为目的的,更像是授人以

  • 数列所有公式大全_finish验证失败是什么意思

    数列所有公式大全_finish验证失败是什么意思请写一个程序,要求维护一个数列,支持以下 6 种操作:(请注意,格式栏 中的下划线 _ 表示实际输入文件中的空格)输入格式第 1 行包含两个数 N 和 M,N 表示初始时数列中数的个数,M 表示要进行的操作数目。第 2 行包含 N 个数字,描述初始时的数列。以下 M 行,每行一条命令,格式参见问题描述中的表格。输出格式对于输入数据中的 GET-SUM 和 MAX-SUM 操作,向输出文件依次打印结果,每个答案(数字)占一行。数据范围与约定你可以认为在任何时刻,数列中至少有 1 个数。输入

  • plsqldev 日期格式

    plsqldev 日期格式之前装win7+oracle11R2(64)+ instantclient_11_2(32)+PLSQL(32)费了很大力气,见前一个帖子,后果就是plsql启动时读的环境变量位置是五花八门,可能是注册表中oraclehone下的,也可能是instantclient下的或者是电脑高级属性中环境变量,当然start.bat中的设置优先。  plsql中执行以下语…

  • js 对象转数组 的方法「建议收藏」

    js 对象转数组 的方法「建议收藏」直接上代码:1、ES6以上写法:constobjToArr=(model)=>Object.keys(model).map(key=>({key:model[key]}));2、ES5写法:写法一:functionobjToArr(model){returnObject.keys(model).map(key=>({key:model[key]}));}写法二:(该方法相对初级,简单易理解)…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号