编程的两大思想:面向过程与面向对象的区别(类的定义)

本文探讨编程中的面向过程与面向对象思想,重点讲解Python中的面向对象编程。内容涵盖类与对象的概念,如何定义Python类,包括类的创建、组成以及对象的创建。通过实例解释了类属性、实例方法和对象实例化的概念。
摘要由CSDN通过智能技术生成

 学习面向对象,首先你得有一个对象!

开玩笑的。嘻嘻。


目录

一. 引入

二. 前言

三. 类与对象

3.1概念

3.2定义Python中的类 

3.2.1类的创建

3.2.2类的组成

3.2.3对象的创建


一. 引入

编程界的两大阵营
面向过程面向对象
区别十五比较简单,可以用线性的思维解决事务比较复杂,使用简单的线性思维无法解决
共同点面向过程和面向对象都是解决实际问题的一种思维方式

二者相辅相成,并不是对立的

解决复杂问题,通过面向对象的方式便于我们从宏观上把握事务之间的复杂的联系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理

举个栗子:

泡一碗浓香可口的康师傅红烧牛肉面(康师傅打钱),正常我们的思维都是

1.撕开盖子

2.取出调料包

3.撒在面饼上

4.倒水泡面

5.盖上盖子

以上的顺序,即是线性思维,就是面向过程方式

但是还是有个老哥比如说我就比较奇怪,我从来不自己泡红烧牛肉面,我要我的大学室友帮我泡,然鹅我的大学室友也愿意帮我泡(这一步无关紧要),那么我的大学室友就是我的对象♂。

那么这就是一个面向对象的过程,可见即使我选择了面向对象,但是我的对象的泡面操作,仍然是按照以上列表顺序进行的。所以具体到微观操作,仍然使用面向过程方式。


二. 前言

最近发现身边有小伙伴学习总是抱着书上的概念啃来啃去,比如,面向对象的定义:面向对象顾名思义就是把现实中的事务都抽象成为程序设计中的“对象”,其基本思想是一切皆对象,是一种“自下而上”的设计语言,先设计组件,再完成拼装。这并不是一个有头发的人可以理解的话语,所以有头发的聪明人都来看我的博客了!快速理解!

三. 类与对象

3.1概念

  • 数据类型
    • 不同数据类型属于不同的类
    • 使用内置函数查看数据类型
      # csdn:一个兴趣使然的程序猿罢了
      
      print(type(666))        <class 'int'>
      print(type(696))        <class 'int'>
      print(type(969))        <class 'int'>
  •  对象
    • 666、696、969都是int类之下包含的相似的不同个例,这个个例(666、696、969)专业术语称之为实例或者对象

3.2定义Python中的类 

3.2.1类的创建

  • 创建类的语法
    • clas 类名 :
  • 类的组成
    • 类属性
    • 实例方法
    • 类方法

举例:

# csdn:一个兴趣使然的程序猿罢了

class Student:#student作为类的名称有由一个或多个单词组成,每个单词的首字母大写,其余小写
    pass#pass做占位使用

 那么小伙伴们一定很奇怪,定义了Student类型有什么用呢,我能知道什么呢?我需要知道什么呢?

那么我们通过代码了解:

print(id(Student))>>>>>>>>>>>>>> 2269766192144
print(type(Student))>>>>>>>>>>>> <class 'type'>
print(Student)>>>>>>>>>>>>>>>>>> <class '__main__.Student'>

显然,Student有地址有类型等等,那么我们看看类的组成

3.2.2类的组成

在学习定义类之前,我们通常会先学习基础语法中的函数,比如函数内部定义的变量,我们一般称为局部变量等等,定义类我们一般可以进行类比,但也要知道两者的不同:

# csdn:一个兴趣使然的程序猿罢了

class Student:#student作为类的名称有由一个或多个单词组成,每个单词的首字母大写,其余小写
    native_palce='南京'#直接写在类里的变量,我们称为类属性
    
    #实例方法
    def mulx(self):#
        print('乘法')

在类的内部定义的变量不再是局部变量,而是类属性;

在类的内部定义的函数不再是函数,而是实例方法。

#CSDN:一个兴趣使然的程序猿罢了
 #静态方法
    @staticmethod
    def method():
        print('我使用了staticmethod进行修饰,所以我是静态方法喔!')
    #类方法
    @classmethod
    def cm(cls):
        print('我使用了类方法,因为我使用了classmethod进行修饰')
        
    def __init__(self,name,age):
        self.name=name  
                  #self.name 称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
        self.age=age

3.2.3对象的创建

  • 对象的创建又称为类的实例化,对象包括属性和方法
  • 语法:
    • 实例名=类名()                                                        stu=Student()
  • 意义:有了实例,就可以调用类中的内容

举个栗子:

现在我们定义一只小海龟的属性 和它具有的一些操作(方法):

class Turtle:
    #属性
    color='green'
    weight=10
    legs=4
    shell=True
    mouth='big'
    #方法
    def climb(self):
        print('我正在努力的往上爬啊爬')
    def run(self):
        print('开了跨之后!我健步如飞')
    def hit(self):
        print('这一拳二十年的功夫,你挡得住吗?!')
    def eat(self):
        print('吃饭就好好吃饭,不可以玩手机哦')
    def sleep(self):
        print('遇到困难睡大觉!')
#输出

>>> tt=Turtle()
>>> tt.sleep()
遇到困难睡大觉!

大家有没有觉得最后两行很熟悉,对,就类似我们学习基础语法时的各个数据类型的操作方法

例如我们现在有个list类型的ls变量,他的内部排列着十以内的正整数,我们可以用ls.append()、ls.sort()等去操作这个列表,这就是类的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个兴趣使然的程序猿罢了

有钱的捧个人场,没钱的想想办法

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值