本节内容

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. java中实现全局变量的功能

    一.通过接口实现 二.通过静态变量  static声明 package test.autorun; import java.util.LinkedList; import java.util.Queu ...

  2. PHP利用GD库处理图片方法实现

    这里写的是完成每个功能的函数,可以复制单个函数直接使用,这里的每个函数都是另外一篇PHP常用类------图片处理类Image当中的方法进行细化,可以参考一下 废话不多说,直接付代码吧! 添加水印(文 ...

  3. 通过Oracle DUMP 文件获取表的创建语句

    1. 有了dump文件之后 想获取表的创建语句. 之前一直不知道 dump文件能够直接解析文件. 今天学习了下 需要的材料. dump文件, dump文件对应的schema和用户. 以及一个版本合适的 ...

  4. github使用指南(2015年3月23日更新了本地创建仓库再推送到remote仓库的使用方法)

    我是通过这个来学习的.个人愚笨,琢磨了半天,终于搞通了,醉了醉了,以前一直使用svn,用git确实有点水土不服.本文以如何使用git为主来展开,不涉及太多理论. git是分布式的版本管理.什么叫分布式 ...

  5. hive数据查询

    Fetch task 丢弃了mapreduce的作业的繁重任务,查询方便简单 1.第一种方式 2.linux命令行 3.地3中

  6. pinv

    moore-penrose pseudoinverse of matrix伪逆

  7. python中json.load()、json.loads()、json.dump()、json.dumps()的区别

    json.load()从文件中读取json字符串 json.loads()将json字符串转换为字典类型 json.dumps()将python中的字典类型转换为字符串类型 json.dump()将j ...

  8. P2464 [SDOI2008]郁闷的小J

    题目描述 小J是国家图书馆的一位图书管理员,他的工作是管理一个巨大的书架.虽然他很能吃苦耐劳,但是由于这个书架十分巨大,所以他的工作效率总是很低,以致他面临着被解雇的危险,这也正是他所郁闷的. 具体说 ...

  9. day21 re模块

    引入方式 import re 方法 .findall() 找所有的,返回所有的结果然后放在列表中 ret = re.findall("[a-z]+","yangtuo t ...

  10. [转]GDB

    gdb调试coredump文件 gcc -g main.c //在目标文件加入源代码的信息 gdb a.out (gdb) start //开始调试 (gdb) n //一条一条执行 (gdb) st ...