面向对象【day07】:知识点回顾(十一)
本节内容
1、self关键字
2、封装
3、继承
4、静态方法
一、self关键字
作用:调用当前方法的对象
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class Foo: #静态字段或者公有属性 country = "中国" def __init__(self,name,count): self.name = name self.count = count def bar(self): passobj1 = Foo("江苏",100000)obj1.bar |
注意:country = "中国" 属于公有字段,它的作用是:每个对象中保存相同的东西时,可以使用静态字段

二、封装
- 类中封装了 :字段、方法
- 对象中封装了:普通字段的值
- 不仅可以封装字段,还可以封装对象
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
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 =F3(o2)o3 ====> o2# o2 = F2(o1)o3.b.a# o1 = F1("alex")o1.b.a.N |
三、继承
说明:子类继承父类,对象调用方法时,先从自己的类中去找,找不到,就会去找父类中的方法。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
class F1: def __init__(self): print('F1') def a1(self): print("F1a1") def a2(self): print("F1a2")class F2(F1): def __init__(self): print("F1") def a1(self): print("F2a1") def a2(self): self.a2() print("F2a2")class F3(F2): def __init__(self): print("F3") def a2(self): print("F3a2")obj = F3()obj.a1()#输出F3a2F2a1 |
上面代码访问的顺序如下:
- 先去到F3中找a1方法,没有找到
- 到F2父类去找,找到了a1方法,去执行a1方法
- 执行过程中需要调用F3中的a2方法
四、静态方法
4.1 类的组成
- 字段:1.普通字段(保存在对象中),2静态字段(保存在类中)
- 方法:普通方法(保存在类中,用对象去调用)
|
1
2
3
4
5
6
7
|
class F1: age = 18 #静态字段 def __init__(self,name): self.name = name #普通字段 def a1(self): #普通方法 print('F1a1') |
4.2 静态方法
特点:
- 保存在类中
- 调用者无需创建对象
- 可以有任意个参数
|
1
2
3
4
5
6
7
8
|
class F1: @staticmethod #声明是静态方法 def a1(n1,n2): #无需传入对象,但是可以声明多个值 print('xiaogao')F1.a1(1,2) #类名.方法名 方式调用 |
作用:当对象不需要传入参数时,去创建对象有些浪费,占着资源,所以还不如直接用类名直接去调用,这个类似于函数。
面向对象【day07】:知识点回顾(十一)的更多相关文章
- 面试前的准备---C#知识点回顾----03
经过一天的奔波,喜忧参半,不细表 再回看下标题,C#知识点回顾 再看下内容,数据库3NF 原谅我这个标题党 今天继续回忆 1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒 ...
- Spring知识点回顾(08)spring aware
Spring知识点回顾(08)spring aware BeanNameAware 获得容器中的bean名称 BeanFactoryAware 获得当前的bean factory Applicatio ...
- Spring知识点回顾(07)事件发布和监听
Spring知识点回顾(07)事件发布和监听 1.DemoEvent extends ApplicationEvent { public DemoEvent(Object source, String ...
- Spring知识点回顾(01)Java Config
Spring知识点回顾(01) 一.Java Config 1.服务和服务注入 2.Java 注解 :功能更强一些 3.测试验证 二.注解注入 1.服务和服务注入 2.配置加载 3.测试验证 三.总结 ...
- Java进阶(二十六)公司项目开发知识点回顾
公司项目开发知识点回顾 前言 "拿来主义"在某些时候并不是最佳选择,尤其是当自己遇到问题的时候,毫无头绪. 在一次实验过程中,需要实现数据库的CRUD操作.由于之前项目开发过程中, ...
- $Django Rest Framework-认证组件,权限组件 知识点回顾choices,on_delete
一 小知识点回顾 #orm class UserInfo (models.Model): id = models.AutoField (primary_key=True) name = models. ...
- django知识点回顾与补充
一.django知识点回顾 1.Cookie操作 - 客户端本地存储的键值对 2.Session操作 - 3.URL路由 - /index -> view.函数 4.MTV 5.View中返回方 ...
- Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(一:知识点回顾)
一.知识点回顾 1.Mybatis环境搭建(DAO层的实现)(使用maven项目管理工具) 需要引入的依赖包: <!-- 单元测试junit --> <dependency> ...
- 零基础Python知识点回顾(一)
如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符 输入检查是否已经安装pip,一般安装了python都会有的. >pip ...
- 前端知识点回顾——HTML,CSS篇
前端知识点回顾篇--是我当初刚转行为了面试而将自己学过的前端知识整理成的一份笔记,个人目的性很强,仅供参考. doctype 有什么用 doctype是一种标准通用标记语言的文档类型声明,目的是告诉标 ...
随机推荐
- Go语言流程控制
1.条件语句 几个注意点和C#不一样的. { } else { } ① 条件语句不需要使用括号将条件包含起来 a<5 ,C#必须有() ②无论语句体内有几条语句,花括号{}都是必须存在的:C#如 ...
- 洛谷P4281 紧急集合 / 聚会
LCA 题目要求找离三个点最近的点,我们先看两个点的情况,自然是找LCA,那么三个点的时候是否与LCA有关呢? 显然,离三个点最近的点一定是在这三个点联通的简单路径上. 可以简单证明一下,假设某个点离 ...
- navicat激活
参考:https://www.jianshu.com/p/5f693b4c9468 一开始想激活12.1.8,但是激活按钮一直点不了,换了个12.0激活成功
- 【Sichuan 2017D】Dynamic Graph
题意 300个点的无环图,开始都是白色,每次改变某个节点的颜色(黑/白),问有多少对白点之间存在只有白点的路径. 题解 类似floyd,求出两点之间的路径条数.然后白到黑就删去对应路径,黑到白就增加对 ...
- ubuntu配置mysql
1.安装mysql: sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install ...
- electron打包之真的恶心
用electron-packager进行打包 这个模块的文档写的真的垃圾 1.先看看首页的参数介绍 就是说必选参数就是源码路径和app名字和--platform还有--arch咯,而且源码路径也没说是 ...
- nginx常用配置
nginx.conf配置文件详解 其主要分为几个模块 全局快 从开始到events块之间的一部分内容,其作用域为全局作用域 events块 主要负责Nginx服务器与用户的网络连接 常用设置: 是否开 ...
- HEOI2013 Segment
传说中的“李超树”. 大意:给你若干线段,试求横坐标x上的最上方一条线段的编号.无则输出零. 解:用线段树维护. 插入的时候保存自己这个区间上可能成为最大值的线段,被抛弃的则看情况下放. 查询时从最底 ...
- 【洛谷P1303 A*B Problem】
题目描述 求两数的积. 输入输出格式 输入格式: 两行,两个数. 输出格式: 积 输入输出样例 输入样例#1: 1 2 输出样例#1: 2 说明 每个数字不超过10^2000,需用高精 emm,显然本 ...
- navicat premium 12破解流程
具体步骤:这是破解的具体链接 仅此记录,以供后续之需