zoukankan      html  css  js  c++  java
  • 12.1面向对象编程的介绍(oop):封装,继承,多态,访问私有属性

    #封装:内部对数据封装。作用:1、保护数据,防止被随意修改;2、使外部的程序不需要关注内部的构造;只需要提供接口给外部进行访问即可。
    #继承:一个类就相当于一个模板。通过父类,子类的方式实现不同角色的共同点和不同点的最小代码量。
    #多态:多种状态。一个接口,多种实现。一个基类中派生出了不同的子类,且每个子类在继承了同样的方法的同时又对父类的方法做了不同的实现,这就是
    同一个事物表现出的多种形态
    例子:
    class Dog(object):
    def __init__(self,name,type): #构造函数,构造方法=初始化方法。
    self.NAME = name #在类里是全局生效,叫属性或成员变量(严格来说不是公有属性)
    self.TYPE = type
    self.__heart = "Normal" #私有属性,外部不能传参数进来。
    def sayhi(self): #类的方法;动态属性
    print("hello, I am a dog, My name is",self.NAME)
    print("My type is",self.TYPE)
    def eat(self,food):
    print("%s is eating %s" %(self.NAME,food))
    def get_heart(self): #对外提供只读访问接口。
    return self.__heart

    d = Dog("小汪1","京巴") #实例化后产生的对象,叫实例。
    d2 = Dog("小汪2","哈巴")
    print(d.NAME)
    d.sayhi()
    print(d.get_heart())
    print(d._Dog__heart) #强制访问私有属性。

    print(d2.NAME)
    d2.sayhi() #可以从初始化方法后的参数里传入
    d2.eat("rice") #可以直接传入参数




  • 相关阅读:
    数据库DQL(Data Query Language)语言学习之一:基础查询
    Mysql查看连接数(连接总数、活跃数、最大并发数)
    完成端口之二:服务器代码
    完成端口之二:线程池部分
    完成端口之一
    日志系统(Log4z源码)
    C++多线程同步之Semaphore(信号量)
    select、poll和epoll的优缺点
    python之切片
    python之Dict和set类型
  • 原文地址:https://www.cnblogs.com/liulvzhong/p/7987007.html
Copyright © 2011-2022 走看看