python中面向对象编程

一、类的定义(相当于多个函数集合的定义)
例9.1定义一个矩形类,包含两个数据成员(属性参数):宽度和高度;该类提供两种方法(功能函数)求面积和周长

class Rectangle: #定义一个矩形类Rectangle
    #(1)定义初始化方法:
    def __init__(self,width,height):   #至少有一个参数self(对象属性),并且放在第一个位置
        self.width = width   #给属性成员赋值(将实参传递给形参)
        self.height = height 
        
    #定义实体方法:
    def getArea(self):       #属性至少有一个参数属性
        S = self.width * self.height    #在内部访问属性前面要添加self.
        return S             #返回方法值S
    def getPerimeter(self):
        C =(self.width + self.height)*2
        return C             #返回方法值C

二、创建对象(相当于函数的调用)

rect = Rectangle(10,6)          #创建类Rectangle的对象(具体指即实参)rect
print('此矩形的宽为:',rect.width)    #调用(访问)实例属性,在属性前面要求添加对象名
print('此矩形的高为:',rect.height)
print('此矩形的面积为:',rect.getArea( ))  #调用实例方法,在前面添加对象名.方法()
print('此矩形的周长为:',rect.getPerimeter( ))

此段代码运行的结果         

三、类的属性(变量)

1、实例属性:在方法内部通过‘self.属性变量名’定义和访问的变量(在外部通过‘对象名.变量名’访问)
2、类属性:在所有方法之外定义的属性(变量)

四、类的方法(函数)

1、定义:与类相关的函数
2、类型:实例方法,类方法,静态方法
3、实例方法:至少包括一个对象参数,在内部通过'self.方法()调用',在外部通过'对象名.方法()'调用。

五、类的继承、重写与多态

1、继承:子类继承父类的方法
2、重写:子类可以重写子类的方法(方法名称相同)

3、多态:子类中方法名称相同但功能不同
4、示例如下:

#定义一个父类Person:

class Person:
    #(1)初始方法
    def __init__(self,name,age,sex):
        self.name = name
        self.age = age
        self.sex = sex
    #(2)实例方法:
    def study(self):
        print(self.name,'正在学习!')
    def show(self):
        print('姓名:{}\n 年龄:{}\n 性别:{}\n'.format(self.name,self.age,self.sex))

#定义一个子类Student:
class Student(Person):       #创建父类Person的一个子类Student
    def __init__(self,name,age,sex,major):
        super().__init__(name,age,sex)   #用内置方法super().实现父类成员的继承(初始化方法)
        self.major = major   #添加成员(重写)
    def show(self):
        Person.show(self)    #用‘父类名.方法()’来继承父类实例方法
        print('专业:',self.major)        #添加实例方法功能(重写方法)
#创建类对象
s = Student('唐美琳','19','女','数字科学')
#调用方法
s.study()     #父类的方法完全继承到子类

此段代码运行结果

s.show( )     #当实例方法重写时调用子类(方法名相同,功能不同;而多态:在相同的实例方法名,但是功能不同)

此段代码运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

t_RNA_

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值