面向对象编程

 #9.1定义一个矩形类,包含2个数据成员(属性参数):宽度和高度:该类提供2种方法(功能函数):求面积和周长
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
    def getPerimeter(self):
        C= 2 * (self.height+self.width)
        return C
#二·创建类对象(相当于函数的调用)
rect = Rectangle(3,4)
print("矩形的长",rect.width)    #调用(访问)实例属性,在属性前面添加对象名,方法()
print("矩形的宽",rect.height)
print("矩形的面积",rect.getArea())   #访问实例方法,在前面添加对象名,方法()
print("矩形的周长",rect.getPerimeter())

#三·类的属性(变量)
#1.实例属性:在方法内部通过“self。属性变量名”定义和访问的变量(在外部通过“对象名。变量名”名访问)
#2.类属性:在所有方法之外的属性(变量)

#四·类的方法(函数)
#1.定义:与类相关的函数
#类型:实例方法,类方法,静态方法
# 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):
        # self.name=name
        # self.age=age
        # self.sex=sex
        super().__init__(name,age,sex)#用内置方法super(),实现父类成员的继承
        self.major=major #添加成员(重写)
    def show(self):
        Person.show(self)   #用Person(父类名方法)来继承实例方法
        print("专业:",self.major)     #添加实例方法功能(重写方法)

#创建类对象
s = Student("屈靖航","20","boy","数字科学")
#调用方法
s.study()   #父类方法完全继承到子类
s.show()    #当实例方法重写时调用之类(方法重写:父类与子类里面方法相同功能不同,而多态:在不同的子类里面有相同的实例方法名)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值