面向对象(pro)

C++ PY java
ruby
go

面向过程

C
直接操作内存

对象=包含了很多不同的“元素”的一个物体

性质

集合体

封装性

每一个对象封装了不同的对象

面向对象的思想:

就是把某一个物品的特性封装起来
类里面封装了class的变量(成员),对成员操作的方法

类的变量就是对象

方法:

实例(私有)方法:
类(公有)方法:类名.方法
类的方法(传入参数是self的方法):
        特殊的构造方法
        类的不同对象调用类的方法有属于我这个对象的独有结果
        使用我类自身内容的方法
        self:就是要操作我类自身变量前面要加的标识
        传入声明我这个对象的方法

构造方法:

我创建类的同时 自动 执行这个方法
MyClass()
()括号就是一个构造器

实例化类

p = people('2112', 10, 30)

p.speak()

xi =people('xi',11,22)

xi.speak()

print("%s 说: 我 %d 岁。" % (xi.name, xi.age))

class bo:
    '帮助信息:xxxx'
    __xuehao=21100101
    xuehao=0
    number=100#类变量:不管是那个类创建的,除非重新赋值,这个值都是一样的
    def __init__(self,name,sex):
        self.name=name
        self.sex=sex
    def __xuehao(self):
        print("")

    def numshow(self):
        print("number=",self.number)
    def numset(self,n):
        self.number=n
    def information(self):

        print("name=",self.name)
        print("sex=",self.sex)

xihaobo=bo("xihaobo","male")
haobo=bo("haobo","secrate")


xihaobo.numshow()
xihaobo.numset(1000)
xihaobo.numshow()
xihaobo.information()

haobo.numshow()
haobo.information()

#del haobo.name
#haobo.information()

print(hasattr(haobo,"name"))
print(getattr(xihaobo,"sex"))
setattr(haobo,"sex","male")
haobo.information()


print(bo.__doc__)
print(bo.__name__)
print(bo.__module__)
print(bo.__base__)
print(bo.__dict__)

继承(具有一定的共同的特点的一类,但又有不同的一类,用继承的方法去表示)

继承:他本质上:算是把父类的方法复制到子类里面,就可实现调用了。但是这些复制到子类的成员变量和

方法,本质上还是属于父类

重写:对继承的父类方法进行适应我子类的修改 方法名一定要一样,参数列表不一定要一样(对父类方法的覆盖)

class dog:#父类
    __a=1
    number=111111
    def __f(self):
        print("这是父类的私有方法")
    def __init__(self):
        print("使用父类构造函数")
    def parent(self):
        print("父类的函数")
    def set(self,num):
        dog.number=num
        print("当前父类number",dog.number)
    def num(self):
        print("num=",dog.number)
    def wangwang(self):
        print("父类的函数")

class zhonghuadog(dog):#子类
    def __init__(self):
        print("子类的构造函数")
    def child(self):
        print("子类的函数")
    def wangwang(self):
        print("子类覆盖")
        print("汪")

a=dog()
a.__init__()
a.parent()
a.set(100)
a.num()
a.wangwang()


b=zhonghuadog()
b.__init__()
b.child()
b.parent()
b.set(99999)
b.num()
b.wangwang()