python-9.类和对象

本文深入探讨了Python的面向对象编程特性,包括类与对象的概念、属性与方法、类的创建、对象的实例化以及面向对象的核心思想。强调了面向对象的四大特点:各司其职、弱耦合性、可重用性和可扩展性。同时,介绍了类属性与实例属性的区别,以及构造方法`__init__`的作用。此外,还讨论了Python中的私有化以及成员的访问控制。最后提到了类的组合以及如何处理公有和私有成员的问题。
摘要由CSDN通过智能技术生成

类和对象

  • 说明
Python无处不对象,万物皆对象

世界上第一个面向对象对象的编程语言:SmallTalk
C语音:面向过程的语音
C++:面向对象+面向过程的语言
Java:面向对象语言的里程碑
Python:纯面向对象的语言

OOP:面向对象编程
AOP:面向切面编程
  • 对象
1.对象
1.有什么:属性
2.能干什么:方法
对象=属性+方法
对象:一切客观存在的事物 以及可以抽象的事物(以后慢慢理解)

2.对象的属性
1.对象的属性可以又是一个对象(工作中很常用)
2.对象的属性也可以是抽象的、

3.对象的方法
对象之间的方法可以相互调用

4.面向对象的核心思想
模拟现实世界,从而解决现实世界的问题

5.客观世界对象的构成
1.小对象组合构建大对象
2.对象之间彼此方法调用
  • 小结
面向对象的特点
1.各司其职
    对象尽量保持简单性
2.弱耦合性
    对象和对象之间的关系尽量弱化
3.可重用性
    对象可以多次反复使用
4.可扩展性
    在原有对象的基础上可以扩展新的方向或属性
1.1.类是对象共性的抽象
    类拥有的属性和方法,对象就有对应的属性和方法
    对象是具象的,类是抽象的
2.类是对象的模板
3.类是客观对象在人脑中的主观反应

2.如何编写一个类
关键字:class
语法:
    class 类名:
        属性
        变量名=变量
        方法
        def 方法名(参数):
            内容

3.创建对象
对象名=类名(构造参数)
s1 = Student() 存的是首地址

4.属性
1.属性的分类:
    1.类属性
        定义在类中,方法之外的属性
    2.实例属性
        通过对象创建的属性
2.类属性
    1.定义在类中,方法之外的属性
    2.通过类属性创建的属性:类名.属性名=3.类属性的变化,会影响所有对象
        类属性是所有对象共享的
    4.不需要创建对象,即可使用
3.实例属性
    1.通过对象创建的属性:对象.属性名=2.实例属性只会影响自己,不能影响别的对象
        实例属性是各个对象各自拥有的
    3.不论创建实例属性或修改一个属性,只要和类属性同名,都会创建一个实例属性,遮蔽掉类属性
    4.实例对象必须创建对象,才能使用

4. 方法
1. 方法的声明+方法的实现
		声明:def 方法名(self,参数):
				实现
2. self
		1. self:指代对象
		2. self在方法中不需要主动传值,自动将当前对象传递给self
		3. 在方法中,self相当于外面的对象
		4. self之后可以添加参数,用于方法的传参
		5. self是开发中习惯的写法,方法调用时,编译器会将当前的对象传递给第一个参数
3. 方法:
		也称之为:绑定方法:和实例对象绑定

属性+方法 统称为:成员
成员属性,成员方法

5.构造方法
1. __init__(self):
		也称之为:初始化方法
		不需要手动调用,在创建对象是,会自动调用
		init方法也可以有其他参数---构造参数
2. 构造方法:
		返回值只能是None
3. 常用的形式
		类属性:是公有,所有的对象都不会改变的属性。一般使用类属性
		def __init__(self,a,b,c)
			self.a=a  #实例属性
			self.b=b
			self.c=c
  • 组合
一个类属性也可以另外一个对象,该形式称之为组合
  • 共有私有问题(属性方法都包括)
1. 成员前不加任何符号:公开的,公有的
		__init__(self):魔法方法也是公开的
2. 成员前加两条下划线:私有化
		__age
        私有化的属性,不能被外部直接访问,类内部可以访问
3. 私有化:
		1. 属性前添加两条下划线
		2. 提供对应的get/set方法
4. 私有化本质:
		Python其实并没有私有化,使用名字重构的方法实现的伪私有化
        私有成员被构建为:_类名__属性名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值