面向对象编程:从概念到实践

面向对象

一、什么是面向对象

面向对象是一种把脑海里的想象变成现实事物的编程思想

二、我们通过一个故事来了解面向对象这个编程思想

故事的名字:女娲造人
从前,有位神叫女娲 ,她生活在太阳尽头。当时大地上除了花草树木就只剩下女娲
有一天女娲坐在河边玩泥巴,她在想如果有一个,跟我一样能够说话的人就好了。
她想要一个同伴来陪她,于是她就拿起手中泥巴,捏泥人,时间过了很久,捏出来泥人,都奇奇怪怪的。
女娲一点都不喜欢,于是她在脑海中想象 这个同伴 应该是两个眼睛一个嘴巴有名字,还会聊天 她轻轻一笑,于是女娲根据脑海中的样子,快速捏出来了很多泥人,这些泥人都具有相似的特点都有一个嘴巴两个眼睛,还会聊天,从此女娲不再寂寞和孤单,大地上也多了很多欢声笑语。

故事中的启示:

  • 什么是类?
  • 什么是实例化类?
  • 什么是面向对象?

三、类

类就是女娲想法

> 示例:
			class 类名:
				成员属性
				成员方法
class 女娲想法:#类
眼睛 = None#这个眼睛鼻子名字 叫成员属性 1
鼻子 = None
名字 = None #这只是女娲想法 还没有去捏泥人 目前空 None

def func(self):#成员方法
    print('会聊天')
  • 什么是成员属性:在类中变量,叫成员属性。
  • 什么是成员方法 :在类中函数,叫成员方法。

四、实例化类

示例:类名()
第一个泥人 =女娲想法() # 将女娲想法:实例化 这个想法
第二个泥人 = 女娲想法()
第三个泥人 =女娲想法()
创建类 + 实例化类 == 面向对象

五、成员方法中 self 的意思

self作用:可以使成员方法,访问成员变量中的值

示例:

              def func(self):
                   print(self.名字,'会聊天') 
class 女娲想法:
 #  在类中变量 叫 成员属性
    眼睛 = None
    鼻子 = None
    名字 = None #这只是女娲想法 还没有去捏泥人 目前空None
    def func(self):
 # 通过self 可以访问到 眼睛 鼻子 名字
        print(self.名字,'会聊天')
 # 根据女娲想法 来 捏这个泥人 这个思想 就叫面向对象
# 实例化一次 就是创建一个泥人
第一个泥人 = 女娲想法()  # 女娲想法 实例化 这个想法
第一个泥人.名字 = '悟空'
第一个泥人.眼睛 = 2
第一个泥人.鼻子 = 1
第一个泥人.func()
第二个泥人 = 女娲想法() # 通过女娲想法() 再来创建一个泥人 第二个泥人
第二个泥人.名字 = '嫦娥'
第二个泥人.眼睛 = 2
第二个泥人.鼻子 = 1
第二个泥人.func()

六、案例

我们将健身做一个类,健身有装备、有饮食、有睡眠。 我们使用面向对象的编程思想,创建一个类,并实例化
健身。

class 健身的想法:
    #成员变量
      装备=None #空,这还只是想的阶段
      饮食=None
      睡眠=None
    #成员方法
      def func(self):
          print(f'准备{self.装备},开始吃{self.饮食},必须{self.睡眠},然后才跑步,撸铁')
这是男生的健身计划=健身的想法()#实例化类
这是男生的健身计划.装备=['哑铃','杠铃']
这是男生的健身计划.饮食=['鸡胸肉','西兰花']
这是男生的健身计划.睡眠=['少熬夜','早睡早起']
这是男生的健身计划.func()

七、魔法方法

init 魔法方法

  • 魔法 :他会在实例化类 自动调用
  • 方法: 函数
  • 作用: 在实例化类的时候 就会调用里面内容
  • 用途 :一般 用于初始化成员属性
class 健身的想法2:
     def __init__(self,x,y,z):#用init魔法方法创建变量,通过实例化类传参
         self.装备=x
         self.饮食=y
         self.睡眠=z
     def func2(self):
        print(f'准备{self.装备},开始吃{self.饮食},必须{self.睡眠},然后才普拉提,瑜伽')
这是女生的健身方法=健身的想法2(['跳绳','弹力带'],['绿色蔬菜','瘦肉'],['早睡早起','精神好'])#实例化类
这是女生的健身方法.func2()

八、在项目中面向对象如何使用

用户功能 :登录、注册、查询用户信息是一类
操作功能: 删除信息 查询信息 查看主页信息

这边是面向对象:

 class 用户功能:
 def login(self):
 print('这是登录方法')
 def regin(self):
 print('这是注册方法')
 def xinxi(self):
 print('这是查询用户信息的方法')
 class 操作功能:
 def a(self):
 print('这是删除信息方法')
 def b(self):
 print('这是查询信息方法')
 def c(self):
 print('这是查看主页方法的方法')
张三 = 用户功能()
张三.login()

不使用面向对象:

def login(self):
 print('这是登录方法')
 def a(self):
 print('这是删除信息方法')
 def b(self):
 print('这是查询信息方法')
 def regin(self):
 print('这是注册方法')
 def c(self):
 print('这是查看主页方法的方法')
 def xinxi(self):
 print('这是查询用户信息的方法')

面向对象编程好处 :

  • 提高代码的可读性 可维护性 可重用性
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值