美文网首页程序员python_pycham
遇见Python(二):面向对象

遇见Python(二):面向对象

作者: 付十一v | 来源:发表于2019-03-01 18:19 被阅读49次

    一、类

    创建类:

     class Person():
           pass
    

    创建实例:

    variable = Person()
    

    给实例绑定属性,例如绑定name和age:

       def __init__(self,name,age):
            self.name = name
            self.age = age
    

    案例

    class Person():
        def __init__(self,name,age):
            self.name = name
            self.age = age
    ba = Person('python',10)
    print(ba.name,ba.age)
    

    在类中封装方法:
    添加一个打印的方法printPerson(self)

    class Person():
        def __init__(self,name,age):
            self.name = name
            self.age = age
    ba = Person('python',10)
    
    def printPerson(self):
        print(self.name,self.age)
    

    调用该方法

    printPerson(ba)
    

    二、私有变量

    Python中,在变量前加上两个下划线__,即私有变量,相当于Java中private。如下把name设置为私有,age不变,则name外部不可直接访问。

     def __init__(self,name,age):
            self.__name = name
            self.age = age
    

    外部如需获取私有变量__name,可在Person类中定义get_name()方法,相当于Java中的get方法如:

    class Person():
        def __init__(self,name,age):
            self.__name = name
            self.age = age
    #get方法
        def get_name(self):
            return self.__name
    ba = Person('python',10)
    print(ba.get_name())
    

    外部如需修改私有变量__name,同样可在类中定义set_name()方法,相当于java中的set方法,可以看到以下代码,初始化变量ba的name = python,将ba.set_name = java,最后打印出的结果name值为”java“,如:

    class Person():
        def __init__(self,name,age):
            self.__name = name
            self.age = age
    #get方法
        def get_name(self):
            return self.__name
    #set方法
        def set_name(self,name):
            self.__name = name
    
    ba = Person("python",1)
    ba.set_name("java")
    print(ba.get_name())
    

    三、继承

    继承是指子类继承父类的特征和行为,如有 父类Animal,子类Cat,Cat继承Animal:
    Java版

    class Cat extends Animal{
    }
    

    Python版

    class Cat(Animal):
    

    四、多态

    Python中继承与多态的思想与Java的并无两样。
    多态是指同一个行为具有多个不同表现形式或形态的能力。

    相关文章

      网友评论

        本文标题:遇见Python(二):面向对象

        本文链接:https://www.haomeiwen.com/subject/ubqlsqtx.html