一、初识面向对象

本文介绍了面向对象编程的概念,包括类和对象的关系、封装、继承和多态,强调了类作为抽象的蓝图,对象为具体实例,以及self的作用。通过实例洗衣机类来说明编程中的类和对象创建过程,以及与面向过程编程的区别。
摘要由CSDN通过智能技术生成

==>封装,继承,多态

## 目标:面向对象,网络编程,多任务,数据库

## 一、 理解面向对象
面向对象是一种抽象化的编程思想
~~~如洗衣服
途径:手洗  机器洗
手洗:每一个步骤都需要自己一步一步操作             ==》很麻烦
机器洗:交给洗衣机  烘干 脱水 搓洗用不同的函数实现  ==》简单简洁
总体而言  面向对象作用是简化代码
(加强代码的复用性,像是每个函数中都要输出1~10,那把这个循环封装在函数中则下次直接调用)
~~~
总结:面向对象就是将编程当成一种事物,对于外界,事物是可以直接使用的,不用管其内部的具体实现步骤,而我们编程则是设置这个事物可以做什么 (洗衣机类普通都有烘干,脱水功能,则我们写好它的功能,则后续的再用该功能则就行,不用重新写)
eg:list.append(1),该append也是一个函数,而我们是直接知晓其功能,并未知晓其内部如何存储的

即该事物(函数)可以直接拿来用

## 二、类和对象

思考:洗衣机对象从哪里来?
        生产出来
思考:怎么生产出来的?
        画图======= 》洗衣机======== 》洗衣服

画图即要在空白的基础上创造新的东西,比如要有数据和和一些功能,则是编程前要安排好,由画图======= 》洗衣机都要完成

面向对象编程中两个最重要的组成部分: 类    和     对象
类和对象的关系:类产生对象  ===== 》即“实例化”
(类是抽象化的对象,具有一类对象相同的特点;对象是实例化的类,在类的统一特点后添加自己独有的特点,有些像要用装饰器时,在要装饰的函数外面加上其他的功能)

## 2.1理解类和对象

## 2.1.1类

图纸里面有什么:数据    长宽高           功能:  洗衣服    烘干    脱水

数据:     就是变量======== 》类中叫做属性
功能:     就是函数======== 》类中叫做方法
(因为类是抽象的,其叫法也有不同)

类就是一系列具有相同**特征**和**行为**的事物的统称,是一个抽象化概念,不是真实存在的事物。

- 特征即是属性(变量,数据)
- 行为即是方法(函数,功能)== 》行为即将如何将数据进行处理

## 2.1.2对象

对象是就类的基础上创建的真实存在的事物
注意:开发中   先有类,再有对象
**类是抽象的,对象是具体的**

一个类可以有多个对象

类是一系列对象的集合

**类和类之间行为(功能/方法)不同,对象和对象之间数据不同(其行为相同)**

## 2.1.3总结

类像是对世间万物的一些大类的事物的总结,如狗吃屎,有尾巴;人吃粮食,无尾巴,是虚无中抽象化出来的一些方法与数据

而对象则是满足类中那些特征的具体的事物,而其身上往往还带有其自身的特点

~~~
宝马车             类(因为有多种系列)    抽象的
我的宝马车         对象                   具体的
~~~

## 2.2.1定义类

- 语法
```
#定义函数
def 函数名():
    函数体

#定义类
class 类名():
    代码

```

注意:类名要满足标识符规则,同时遵循**大驼峰命名规则**,但其内部的方法(即函数命名不能用大驼峰命名规则,也怕搞混)
eg:base  user    id
大驼峰命名规则:BaseUserId
小驼峰命名规范:base_user_id

- 代码
```python
class Washer():
    def wash(self):    #实例方法(即功能,函数,行为)
        print(洗衣服==='')
```

## 2.2.2创建对象
- 语法:
        对象名=类名()                 # 类的实例化

```python
#==画图纸==
class Washer():
    def wash(self):    #在类中叫实例方法/对象方法(即功能,函数,行为)
        print(洗衣服==='')

#==根据图纸制作洗衣机==      创建对象
xiaotiane=Washer()

#==洗衣服==      
#验证功能      ------对象名,实例方法名()
xiaotiane.wash()
```

与面向过程对比
```python
a=list()     
#==》在面向过程中,这是赋值,但在面向对象中,这就是类的实例化,因为list()也是一个类名,而append也是一个属性
a.append()   #==》对象名.实例方法(),即这就是实现功能
```

而往往更多的是我们编程中用已经封装好的类来定义新的类,以此提高代码的复用性以及实现新功能
## 2.2.3self

self指的是调用该实例方法的对象,即实例对象

```
#洗衣机    洗衣服
class Washer():
    def wash(self):    # 实例方法
        print(self)    # self指的是调用该方法的实例对象
        print(洗衣服==='')

xiaotiane=Washer()          创建对象
print(xiaotiane)            打印xiaotiane的内存地址,即存放那个对象的空间
xiaotiane.wash()            这里打印的self等于上面的self

```

这里的self可以换,因为是形参,但约定俗成的就是self

**注意:命名文件不要用数字开头且不要有汉字,因为不能识别汉字的路径和数字开头的文件**
类和函数中写的只是定义,在调用时才会执行

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值