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)