本节内容

1、什么是面向对象编程

2、什么是市类?什么是对象?又有什么关系?

3、什么时候适用面向对象?

4、self就是调用当前方法的对象

5、封装、继承、多态

6、字段方法

1、什么是面向对象编程?

- 以前使用函数
- 类 + 对象

2、什么是类什么是对象、又有什么关系?

	class 类:

		def 函数1():
pass def 函数2():
pass # obj是对象,实例化的过程 obj = 类()
obj.函数1()

============ 面向对象不好 ===============
============ 函数编程好

有时候,函数编程能实现?比较麻烦,
面向对象非常的就能实现

3、什么时候适用面向对象?

- 如果多个函数须传入多个共同的参数时
- 根据一个模版创建某些东西
- 应用场景

		class SSH:
def __init__(self, host,port,pwd,username):
self.host =
... def connection(self):
# 去创建连接
self.conn = 和服务器创建的连接对象() def close(self):
# 关闭
self.conn.关闭 def upload(self):
self.conn 使用连接上传文件 def cmd(self):
self.conn 使用连接执行命令 obj = SSH(....)
obj.connection()
obj.upload()
obj.close() obj = SSH(....)
obj.connection()
obj.cmd()
obj.cmd()
obj.upload()
obj.upload()
obj.cmd()
obj.close()

  函数式编程实现

	def upload():
# 连接服务器
# 上传文件
# 关闭 def cmd():
# 连接服务器
# 执行命令
# 关闭 def upload_cmd():
# 连接服务器
# 上传文件
# 执行命令
# 关闭

4、self就是调用当前方法的对象

- 静态字段使用场景,每个对象中保存相同的东西时,可以使用静态字段

	class Foo:
# 静态字段
# 公有属性
country = "中国" def __init__(self, name,count):
# 普通字段
# 普通属性
self.NAME = name
self.Count = count def bar(self):
pass obj1 = Foo('河南', 1000000)
obj1.bar() obj2 = Foo('山东', 10000)
obj2.bar()

5、封装、继承、多态

  封装

- 类中封装了:字段、方法
- 对象中封装了:普通字段的值

		class F1:
def __init__(self,n):
self.N = n
print('F1') class F2:
def __init__(self,arg1):
self.a = arg1
print('F2') class F3:
def __init__(self,arg2):
self.b = arg2
print('F3') o1 = F1('alex') o2 = F2(o1) o3 = F3(o2) ####### 输出Alex:o3.b.a.N ####### # o3 = F3(o2)
o3.b ==> o2 # o2 = F2(o1)
o3.b.a
o3.b o1 = F1('alex')
o3.b.a.N

  继承:

		class F1:
def __init__(self):
print('F1') def a1(self):
print('F1a1') def a2(self):
print('F1a2') class F2(F1):
def __init__(self):
print('F2') def a1(self):
self.a2()
print('F2a1') def a2(self):
print('F2a2') class F3(F2):
def __init__(self):
print('F3') def a2(self):
print('F3a2') obj = F3()
obj.a1()
# F3a2
# F2a1

  

  多态(多种形态):

   pass

6、字段、方法

字段:

普通字段(保存在对象中)
静态字段(保存在类中)

方法:

普通方法(保存在类中,调用者对象,至少有self参数)

class F1:
def __init__(self,name,.....):
self.name = name
... def a1(self):
print(self.name,....) obj = F1('alex0')
obj.a1() class F1: def a1(self):
print('alex') obj = F1()
obj.a1()

    静态方法(保存在类中,调用者类(无需创建对象),可以有任意个参数):

			class F1:

				@staticmethod
def a1(a1,a2):
print('alex') F1.a1(1,2)

  

面向对象【day08】:问答式面相对象(四)的更多相关文章

  1. 初识python:tkinter 实现 弹球小游戏(非面相对象)

    通过 tkinter 采用非面相对象式实现弹球小游戏(使用蹩脚式面相对象实现). #!/user/bin env python # author:Simple-Sir # time:2020/8/3 ...

  2. 面向对象编程(什么是对象)——java

    一.什么是面向对象,什么是面向过 二.引入对象和类的概念 对象:是具体事物 如:小明 汽车 类: 是对对象的抽象(抽象 抽出象的部分) Person 先有具体的对象,然后抽象各个对象之间的部分,归纳出 ...

  3. [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化

    [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化 本节导读: 介绍JSON的结构,在JS中的使用.重点说明JSON如何在.N ...

  4. 文成小盆友python-num7 -常用模块补充 ,python 牛逼的面相对象

    本篇内容: 常用模块的补充 python面相对象 一.常用模块补充 1.configparser模块 configparser 用于处理特定格式的文件,起内部是调用open()来实现的,他的使用场景是 ...

  5. c# 面相对象1-概括

    面向对象和面向过程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了.  面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为 ...

  6. java面向对象编程(类、对象)

    一.面向对象编程概述面向对象编程(Object  Oriented  Programming,缩写为OOP)是当今最流行的程序设计技术,它具有代码易于维护.可扩展性好和代码可常用等优点.面向对象的设计 ...

  7. Python面向对象中的类和对象

    类和对象 目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的 两个 核心概念 1.1 类 类 是对一群具有 相同 特征 或者 行为 的事物的一个统 ...

  8. Java开发知识之Java面相对象

    Java开发知识之Java面相对象上 一丶什么是面相对象 了解什么什么是面相对象.那么首先要了解什么是面相过程. 面相过程的意思就是. 什么事情都亲力亲为. 比如上一讲的排序算法. 我们自己写的. 这 ...

  9. 201871010101-陈来弟《面相对象程序设计(java)》第十周学习总结

    201871010101-陈来弟<面相对象程序设计(java)>第十周学习总结 实验八异常.断言与日志 实验时间 2019-11-1 1.实验目的与要求 (1) 掌握java异常处理技术: ...

随机推荐

  1. 第三个Sprint ------第九天

    四则运算APP内侧: 1将APP安装包apk发到QQ群(班群),让自己班的同学率先体检.通过同学们的反馈.及时处理好bug,快速迭代. 2将APP下载链接发到微信朋友圈,QQ空间,让其他学校的同学也体 ...

  2. 201306114357-实验3-C语言

    #include<stdio.h>#include <stdlib.h>#include <time.h>main(){ int a,b,c,n,u,i,sum;  ...

  3. 『编程题全队』Beata阶段项目复审

    小组的名字和链接 优点 缺点,bug 报告(部分包括建议) 最终名次 想不出队名 1. 界面简洁大方2. 有搜索功能 1. 已经完成的活动缺了点提示界面2. 似乎界面有一点点卡顿目标实现:基本实现找到 ...

  4. Spring Cloud 路由网关服务端

    修改application.properties配置文件:服务端口号.本机名称: 启动注册中心:java -jar uap-register-server-1.0.jar --spring.confi ...

  5. Sub-Processes and Call Activities

    https://www.activiti.org/userguide/#bpmnCallActivity http://www.flowable.org/docs/userguide/index.ht ...

  6. Windows 通过命令行设置固定ip地址

    Winserver1709 之后 windows系统取消了GUI界面 设置ip地址 需要使用命令行界面进行 这里简单记录一下 打开win1709的虚拟机 进入命令行控制台 输入 ipconfig 查看 ...

  7. 使用DataContext和ItemsSource将数据源绑定到ListView上的区别

    在最近的一个项目中,将DataView类型的数据源绑定到ListView控件时,发现当DataView的内容发生变化时,前台的ListView控件的内容并没有发生改变,在这里我先贴出前台要绑定数据源的 ...

  8. 用Delphi制作动态菜单 该文章《用Delphi制作动态菜单》

    ---恢复内容开始--- 1.首先,确定动态菜单的数据来源,即要确定动态菜单标题是来自Windows的系统注册表,还是来自一个数据库,或者是来自一个子目录,主要由程序的功能而定.这里假设主窗口名为Ma ...

  9. ThinkPHP 框架出现安全隐患 ,导致网站被持续攻击一周

    导读 据 ZDNET 报道,有超过 45000 个中国网站由于使用 ThinkPHP 框架受到了攻击. 这些攻击针对的是使用 ThinkPHP 构建的网站,ThinkPHP 是一个中国的 PHP 框架 ...

  10. 关于jQuery.when()用法的调研

    1.该方法在jQuery1.5开始被引入. 2.用法测试 a.var url1 = "/resource/ar/hometab/index_tab_games.json",     ...