本节内容

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. 软件工程——HelloWorld

    #include main(){ printf("Hello World\n"); }

  2. 通过LVM给Linux扩容

    主要参考以下两篇文章: 1:https://www.cnblogs.com/sixiweb/p/3360008.html 2:https://wenku.baidu.com/view/42deee1a ...

  3. PHP 闭包获取外部变量和global关键字声明变量的区别

    最近在学习workerman的时候比较频繁的接触到回调函数,使用中经常会因为worker的使用方式不同,会用这两种不同的方式去调用外部的worker变量,这里就整理一下PHP闭包获取外部变量和glob ...

  4. Spring IOP 面向切面编程

    Spring IOP  面向切面编程 AOP操作术语 Joinpoint(连接点):所谓连接点是指那些被拦截到的点.在spring中,这些点指的是方法,因为spring只支持方法类型的连接点.(类里面 ...

  5. Robot Framework 入门教程总结

    Robot Framework 作为一款通用测试框架,可加载多种测试库.驱动多种测试工具,并可对各种自定义脚本进行集成.对于Robot Framework,我准备将其分为 入门--Robot Fram ...

  6. ESXi安装时遇到不识别的硬件的处理

    1. 部门新购置了一台inspur 四路 NF8480M4的服务器. 上架之后发现ESXi的标准安装盘无法安装. 找不到磁盘安装介质. 2. 处理办法, 找浪潮专家服务,报上序列号,要上相关的一些软件 ...

  7. Highcharts之饼图

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  8. entity framework 缓存干扰的数据不一致问题

    本来EF的设计上DbContext就应该是一个短暂存在的对象,所以它默认才开了缓存和自动检测对象修改之类的功能,而且不是线程安全的.理想的生命周期应该是处理一次请求使用一个context,全局使用会带 ...

  9. AJAX--总结

    AJAX 2018-9-6 14:42:53 AJAX简介 ​ HTTP协议------>HTTP权威指南 ​ 请求:客户端去向服务端请求一个文件 ​ 响应:服务端把对应的文件内容返回给客户端, ...

  10. MT【29】介绍向量的外积及应用举例

    我们在学校教材里学到的数量积(内积)其实还有一个孪生兄弟向量积(外积),这个对参加自主招生以及竞赛的学生来讲是需要掌握的,这里稍作介绍: 原理: 例题: 应用: