菜鸟"Python"之***面向对象***————题海战术(9)

class Student():  #定义了一个学生类
    name=''      #学生类有姓名属性
    sex=''
    address=''
    score=''
    def say(self):
        print('我叫:',self.name)
        print('性别:',self.sex)
        print('地址:',self.address)
        print('成绩:',self.score)
zs=Student()            #定义一个学生类
zs.name='张三'          #为学生张三的属性赋值
zs.sex='男'
zs.address='北京'
zs.score=100
ls=Student()
ls.name='李四'
ls.sex='男'
ls.address='河北'
ls.score=90
zs.say()
ls.say()


class Official():
    name=''
    sex=''
    age=''
    hight=''
    def say(self):
        print('我叫:',self.name)
        print('性别:',self.sex)
        print('年龄:',self.age)
        print('身高:',self.hight)
ww=Official()
ww.name='王五'
ww.sex='男'
ww.age=20
ww.hight=50
yy=Official()
yy.name='依依'
yy.sex='男'
yy.age=30
yy.hight=40
ww.say()
yy.say()


class Student():
    def __init__(self,name,age,sex,money):       #初始化方法,传入五个参数,其中self代表对象本身
        self.name=name      #相当于给对象增加了一个name属性
        self.age=age
        self.sex=sex
        self.money=money
    def say(self):
        print(self.name,self.age,self.sex)
zs=Student('张三',18,'男',100)
zs.say()
print(zs.money)
ls=Student('李四',30,'女',200)
ls.say()
print(ls.money)


面向对象的特性:封装 继承 多态

class Student():
    def __init__(self,name):
        self.name=name
    def hehe(self):
        self.salary=1000
    def say(self):
        print(self.name,self.salary)
zs=Student('张三')
zs.hehe()
#zs.salary=1000
zs.say()

class People():
    count=0      #类属性
    def __init__(self,name):
        self.name=name         #加 self 叫 对象属性
        People.count+=1
zs=People('张三')
ls=People('李四')
print(zs.count)
print(People.count)
ww=People('王五')
print(People.count)



class People():
    count=0      #类属性
    def __init__(self,name):
        self.name=name         #加 self 叫 对象属性
        People.count+=1
zs=People('张三')
print(zs.count)
zs.count=100
print(People.count)
ls=People('李四')
print(zs.count)
print(People.count)
ww=People('王五')
print(ls.count)
print(People.count)


class People():
    count=0      #类属性
    def __init__(self,name):
        self.name=name         #加 self 叫 对象属性
        People.count+=1
zs=People('张三')
print(zs.count)
zs.count=100
print(People.count)
ls=People('李四')
print(zs.count)
print(People.count)
ww=People('王五')
print(ls.count)
print(People.count)
delattr(zs,'count')
print(zs.count)


class Stu():
    count=0
    def __init__(self,name):
        self.name=name
        Stu.count+=1
zs=Stu('张三')
Stu.count+=200
ls=Stu('李四')
zs.count=1001
print(Stu.count)
print(zs.count)
print(ls.count)

类的多态性

class Dog():
    def jiao(self):
        print('旺旺')
class Pig():
    def jiao(self):
        print('哼哼')
class Cat():
    def jiao(self):
        print('喵喵')
def animalJiao(a):
    a.jiao()
d=Dog()
p=Pig()
c=Cat()
animalJiao(d)
animalJiao(p)
animalJiao(c)

类的封装性

class Girl():
    def __init__(self,name,age):
        self.name=name
        self.__age=age
    def say(self):
        print('我叫',self.name)
        print('今年%d岁'%self.__age)
zs=Girl('张三',19)
print(zs.name)
zs.say()
print(zs.__age)

=============

class Girl():
    def __init__(self,name,age):
        self.name=name
        self.__age=age
zs=Girl('张三',19)
print(zs.name)
print(zs.__age)
#                        这是错误的
=====================


class Girl():
    def __init__(self,name,age):
        self.name=name
        self.__age=age
    def say(self):
        print('我叫',self.name)
        print('今年%d岁'%self.__age)
    def getAge(self):
        return self.__age
    def Older(self,old):
        self.__age+=old
zs=Girl('张三',19)
print(zs.getAge())
zs.Older(5)
print(zs.getAge())

==========================================
==============================================================
类的继承性

class People():                # 父类
    def __init__(self,name,sex):     # 初始化方法
        self.name=name
        self.sex=sex
class Student(People):                # 继承父类
    def __init__(self,name,sex,score):
        super().__init__(name,sex)      # 调用父类的初始化方法
        self.score=score
    def say(self):
        print('我叫',self.name)
        print(self.sex)
        print(self.score)
zs=Student('张三','男',89)
zs.say()
=============================================================
##############################################################3
class People():                # 父类
    def __init__(self,name,sex):     # 初始化方法
        self.name=name
        self.sex=sex
        self.__age=100     ##################################错误的写法
class Student(People):                # 继承父类
    def __init__(self,name,sex,score):
        super().__init__(name,sex)      # 调用父类的初始化方法
        self.score=score
    def say(self):
        print('我叫',self.name)
        print(self.sex)
        print(self.score)
zs=Student('张三','男',89)
zs.say()
print(zs.__age) #########################################错误的写法

#########################################################


class People():                # 父类
    def __init__(self,name,sex):     # 初始化方法
        self.name=name
        self.sex=sex
    def kaiwanxiao(self):
        print('呵呵我在开玩笑')
class Student(People):                # 继承父类
    def __init__(self,name,sex,score):
        super().__init__(name,sex)      # 调用父类的初始化方法
        self.score=score
    def say(self):
        print('我叫',self.name)
        print(self.sex)
        print(self.score)
    def kaiwanxiao(self):
        super().kaiwanxiao()     #   重名的话如果想调用父类的就用super
        print('我在开玩笑 哈哈')  #这是调用Student 里面的
zs=Student('张三','男',89)
zs.say()
zs.kaiwanxiao()

class Stu():
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex
    def showSelf(self):
        print('我叫',self.name)
        print('%d岁'%self.age)
        print('性别',self.sex)
zs=Stu('张三',20,'男')
zs.showSelf()


class Stu():
    def __init__(self,name,age,sex,score):
        self.name=name
        self.age=age
        self.sex=sex
        self.score=score
    def showSelf(self):             ## self对象本身
        print('我叫',self.name)
        print('%d岁'%self.age)
        print('性别',self.sex)
        print('成绩',self.score)
zs=Stu('张三',20,'男',80)
zs.showSelf()
ls=Stu('李四',30,'女',90)
ls.showSelf()


class Stu():
    def __init__(self,name,age,sex,score):    #  self对象本身(Stu)
        self.name=name
        self.age=age
        self.sex=sex
        self.score=score
    def showSelf(self):             ##   self对象本身(zs)
        print('我叫',self.name)
        print('%d岁'%self.age)
        print('性别',self.sex)
        print('成绩',self.score)
zs=Stu('张三',20,'男',80)
zs.showSelf()
zs.hight=1.8
print(zs.hight)   #增加张三的属性
ls=Stu('李四',30,'女',90)
ls.showSelf()       #李四没有增加。所以直接打印会报错



class Stu():
    count=10
    def __init__(self,name,age,sex,score):
        self.name=name
        self.age=age
        self.sex=sex
        self.score=score
        Stu.count+=1
    def showSelf(self):
        print('我叫',self.name)
        print('%d岁'%self.age)
        print('性别',self.sex)
        print('成绩',self.score)
zs=Stu('张三',20,'男',80)
ls=Stu('李四',30,'女',90)
zs.showSelf()
ls.showSelf()
print(zs.count)
print(ls.count)
print(Stu.count)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值