1、什么是面向对象
2、面向对象的三个特性
3、什么是实例化
4、什么是属性
5、什么是方法
6、什么是继承,什么是多继承
7、重载与重写的区别
基本练习
1、创建一个Hello对象,输入hello world
2、定义一个类,类中含有三个属性,两个方法,一个方法输出三个属性,另一个方法,输出三个属性的类型
3、定义两个类,其中一个类继承另一个类,通过子类重写父类的方法
4、定义三个类,其中一个继承两外两个,定义一个函数,输出全部的属性。
5、定义一个类,有一个公有的属性,两个私有的属性,一个共有函数,一个私有函数,
共有函数计算三个数
需要先调用私有方法
连个私有属性的积,取模共有属性A*B)%C
私有的方法,交换三个属性的位置,A->B B->C C->A
6、定义一个类,需要在初始的时候,需要两个必选参数,三个可选参数,直接输出结果,没有任何方法
进阶练习
1、创建一个类,通过继承实现多态,实现的多态类是排序,冒泡是一个类,选择是一个类
2、创建一个类
动物
灵长类、啮齿类、哺乳类
灵长类:
猴子
啮齿类:
老鼠、松鼠
哺乳类:
牛、羊、狗、
共性:
属性
生命
方法
吃能
蠕动
灵长类共性:
属性:
社会性
方法:
在树上爬
啮齿类
属性:
体积小、牙齿锋利
方法:
爱咬东西
哺乳类:
属性:
胎生
方法:
四肢或双足行走
3、.类的成员变量 请定义一个交通工具(Vehicle)的类其中有:
私有属性速度(speed)体积(size)等等
方法移动(move())设置速度(setSpeed(int speed))加速speedUp(),减速speedDown()等等.
实例化一个交通工具对象并通过方法给它初始化speed,size的值并且通过打印出来。另外调用加速减速的方法对速度进行改变。
答案:
1、什么是面向对象
每一个函数具体的执行流程
2、面向对象的三个特性
继承、封装、多态
3、什么是实例化
一个对象在创建过程中,一些初始化操作,被称为实例化。
4、什么是属性
就是类对象的属性,存储某个值 这个值的代号可以称为类的属性
5、什么是方法
把每一项类中所有的功能封装起来称为方法,一般方法里的内容就是方法的执行过程。
6、什么是继承,什么是多继承
一个子类只能有一个父类,被称为单继承
一个子类继承了多个父类
7、重载与重写的区别
重写:当子类继承父类中某个方法后,子类对父类的方法不满意,可以重新声明这个方法,这个会覆盖父类中的方法,调用的时候,执行子类的方法。
重载:你的方法名相同,但是参数不同。
class Hello:
def __init__(self,b):
self.b=b
def __str__(self):
return f"{self.b}"
b=Hello("hello,world")
print(b)
class Jian:
def __init__(self,a,b,c):
self.a=a
self.b=b
self.c=c
def liao(self):
print(self.a,self.b,self.c)
def liu(self):
print(type(self.a),type(self.b),type(self.c))
def __str__(self):
return f"a:{self.a},b:{self.b},c:{self.c}"
d=Jian("f",3,5)
e=Jian(3,4,"d")
print(d)
print(e)
d.liao()
e.liao()
d.liu()
e.liu()
class Jian:
def __init__(self,a,b,c):
self.a=a
self.b=b
self.c=c
def liao(self):
print(self.a,self.b,self.c)
def liu(self):
print(type(self.a),type(self.b),type(self.c))
def __str__(self):
return f"a:{self.a},b:{self.b},c:{self.c}"
class Gege(Jian):
def liao(self):
print(f"{type(self.a)}")
d=Gege("f",2,4)
print(d)
d.liao()
class Hello:
def hh(self):
self.b=10
class Jian:
def hh(self):
self.a="f"
self.c=20
class Shu(Jian,Hello):
def __init__(self):
super().hh()
Hello.hh(self)
def jj(self):
print(self.b)
print(self.a,self.c)
d=Shu()
d.jj()
class Bug:
def __init__(self, a, __b, __c):
self.a=a
self.__b=__b
self.__c=__c
def __wo(self):
t=self.a
self.a=self.__c
self.__c=self.__b
self.__b=t
def ni(self):
self.__wo()
print(self.a*self.__b*self.__c)
print((self.__c*self.__b)%self.a)
d=Bug(3,6,4)
d.ni()
class Chu:
def __init__(self,a,b,c=1,d=3,e=4):
self.a=a
self.b=b
print(self.a,self.b,c,d,e)
return
g=Chu(2,3,2,4,3)
print(g)
class Jian:
def __init__(self,a:[]):
self.a=a
def __str__(self):
return self.a
class Duotai_a(Jian):
def __init__(self,a):
super().__init__(a)
def maopao(self,a):
for i in range(len(a)):
for j in range(len(a)-1):
if a[j]<a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
print(a)
class Duotai_b(Jian):
def xuanze(self,a):
for i in range(len(a)):
max=i
for j in range(i+1,len(a)):
if a[max] < a[j ]:
max=j
a[i], a[max] = a[max], a[i]
print(a)
d=Duotai_a([9,10,2,12,15,11])
d.maopao([9,10,2,12,15,11])
e=Duotai_b([9,10,2,12,15,11])
e.xuanze([9,10,2,12,15,11])
class Dongwu:
def sm(self,m):
self.m="生命"
def nc(self):
print("能吃,蠕动")
def __str__(self):
return self.m
class Lzl(Dongwu):
def __init__(self,a):
self.a="社会性"
def pa(self):
print("在树上爬")
class Jcl(Dongwu):
def __init__(self,b,c):
self.b="体积小"
self.c="牙齿锋利"
def ac(self):
print("爱吃东西")
class buru(Dongwu):
def __init__(self,d):
self.d="胎生"
def xz(self):
print("四肢或双足行走")
class Vehicle:
def __init__(self,__speed,__size):
self.__speed=__speed
self.__size=__size
def move(self):
pass
def speedUp(self):
if self.__speed<50:
self.__speed=self.__speed+1
self.speedUp()
else:
print(self.__speed)
def speedDown(self):
if self.__speed>70:
self.__speed=self.__speed-1
self.speedDown()
else:
print(self.__speed)
def setSpeed(self):
if self.__speed<50:
self.speedUp()
elif self.__speed>70:
self.speedDown()
else:
print(self.__speed)
def __str__(self):
return f"speed:{self.__speed},size:{self.__size}"
d=Vehicle(10,60)
d.setSpeed()
print(d)