python 11课 类的创建和

'''
面向过程
    变量、函数都是杂乱无章的,不便于管理和维护


'''
#请同学将自己名字、性别、年龄上传给老师
#面向过程,方法各式各样,不好管理
#小明
stu1 = '我叫小明,今年23岁,性别男'
#小红
stu2 = {'姓名':'小红','性别':'女','年龄':'22'}  #字典的形式
#张三
stu3 = ['张三','男','25']  #列表

#面向对象,便于管理和维护
'''
创建方法:class 类名:
功能或者叫代码内容 
'''
#1,在程序中设计一个表格,我们称之为类(class),和创建函数使用def关键字是一样的
class Student:
    name = None   #相当建一个空值
    gender = None  #性别:空值
    age = None
#在程序中打印表格,我们称之为创建对象
#基于类创建对象  对象名=类名()
stu_1 = Student()
stu_2 = Student()
stu_3 = Student()
#在程序中填写 表格我们称之为:对象属性赋值  对象名.表格的内容 之一
stu_1.name = '小明'
stu_1.gender = '男'
stu_1.age = '23'

stu_2.name = '小红'
stu_2.gender = '女'
stu_2.age = '22'

stu_3.name = '张三'
stu_3.gender = '男'
stu_3.age = '25'

#4。获取对象中记录的信息
#假设需要获取stu_1中的name 属性
print(stu_1.name)

#再获取这个对象中的对象gender 和 age
print(stu_2.gender)
'''
类的创建方法
class 类名:
    类的属性
    类的行为

class 是关键字,使用它时表示 ,要开始定义类了
类的属性-> 定义在类中的变量(成员变量)
类的行为->定义在类中的函数可以称为成员方法


'''


# 创建类的对象的语法:创建对象相当于使用这个类,
# 对象名 = 类名()
#类中定义成员方法和定义函数基本一致,但是有细微区别

#  def 方法名 (self ,形参1,....,形参N)
#self 关键字:成员方法定义时已经要存在的(通常写方法会自己补全)表示类对象自身的意思
# 类中的行为创建

# 定义一个类
class student:
    name = None
    def success(self):
        print(f'{self.name}同学已成功在老师这里报名 ')
    def say_hi(self):
        print('同学们好老师好')
    def say_hi2(self):
        print(f'大家好我是{self.name}')
#创建一个对象
stuA = student()
#给对象中的属性赋值
stuA.name = '孜然'
#对象调用类中的行为,对象名.函数名()
stuA.success()
stuA.say_hi()


stuB = student()
stuB.name = '周杰伦'
stuB.say_hi2()


str1 = 10
print(f'今天我捡到了{str1}元')

'''
python 中可以使用:__init__()  方法:称为构造方法
可以实现 :  
    在创建类对象的时候会自动执行
    在创建类对象的时候,将传入的参数自动提交给__init__方法使用

'''
'''
类的构造 方法
def __init__():
    写入成员属性变量
'''
#使用构造方法对成员变量进行赋值


class Student:
    def __init__(self, name, age, tel): #使用构造方法无需
        self.name = name
        self.age = age
        self.tel = tel

stuC = Student('李华', 31, '19255667788')

print(stuC.name)
print(stuC.tel)


print('=========================================================')

'''
析构函数
使用__del__ 析构函数
当你使用del 关键字删除对象时,就会自动调用 这个方法里面的内容 
'''
class student:
    def __init__(self, name, age, tel):  # 使用构造方法无需
        self.name = name
        self.age = age
        self.tel = tel
#定义析构函数
    def __del__(self): #创建这个析构函数时,当你删时就会自动调用里面的内容
        print(f'对象{self.name}同学已经被删除')
stu1 = student('李结', 12, '1595858575')

del stu1 #使用del关键字删除此对象

print('==================================================')

'''
面向对象编程:是许多编程语言(python java c )都支持的一种编程思想
简单的理解是:基于模板(类)去创建实体(对象)使用对象来完成功能开发(今天的作业内容)

面向对象包函三大特性
1,封装
2,继承
3,多态

'''
#封装

'''
封装表示的是将现实事务的:属性、行为封装到类中,然后描述为:成员变量、成员方法(函数)
从而完成程序对现实世界中的描述
'''

'''
例如大家使用的手机
对我们开放的属性和行为:
我们知道的公开的属性:如品牌,型号,长宽高,配置
行为:如上网、连接网络、拍照

对我们隐藏的属性和行为
属性:系统具体的编码,手机运行的电压
行为:内存管理,程度调度

既然现实事务有不公开的属性和行为,那么作为现实事物中在程序里映射的类也应该支持

'''

'''
私有成员
类中提供了私有成员的支持
    私有成员变量
    私有成员方法
私有属性定义方法
    私有成员变量(属性)变量名前以双下划线开头__
    私有成员方法(行为)函数名前以双下划线开头__
'''

#创建一个手机类
class Phone:
    #创建公有属性
    brand = None #品牌
    size = None #尺寸
    #创建私有属性
    __voltage = 0.5 #手机电压
    def __set_single_core(self): #程序调试方法  (私有成员)
        print('cpu已经更改为单核运行模式')
#创造一个对象来进行测试
phone = Phone() #根据上面的类创建一个手机对象

#对象使用私有方法会报错
#对象使用私有属性同样会报错

#  phone.__voltage = 1.5  #修改电压 (此处虽然能够打印出来)但是实际没有修改
#   print(phone.__voltage)

#私有属性或行为无法被类对象使用,但是可以被其它的方法使用

#定义一个公有的方法来打开手机的5G功能
def use_5G(self):
    if self.__voltage >= 1:
        print('5G功能已经开启')
    else:
        self.__set_single_core()

#创建一个新的手机
phone = Phone()
phone.use_5G
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值