美文网首页
40.私有变量、方法实现类的封装

40.私有变量、方法实现类的封装

作者: 经纶先生 | 来源:发表于2018-03-19 10:43 被阅读0次

私有变量

私有变量或者私有属性,一般以 双下划线开头 的变量
可以在class内部通过方法调用,但是不能被实例化的对像直接调用

class People(object):
    def __init__(self,name,age):
        self.name = name
        self.__age = age

    def job(self):
        if self.__age > 50:
            print("不录用。。。。")
        else :
            print("你被录用了")



p = People("dailiang",16)
p2 = People("zhuzegang",73)


p.job()     #你被录用了
p2.job()   #不录用。。。。

print(p.name)  #dailiang
print(p.age)   #AttributeError: 'People' object has no attribute 'age'
可以看到age就是属于私有属性了

用处,比如我们有一个员工信息查询系统,员工的工资是不能够显示的

ok,上面我们说age这叫私有变量
其实也可以说我们把age这个属性给封装在类里面了,又叫做类的封装

私有方法:

与私有变量一样,以双下划线开始的方法叫做私有方法

class People(object):
    def __init__(self,name,age,salary):
        self.name = name
        self.age = age
        self.salary = salary

    def __addsalary(self):   #私有方法
        self.salary += 5000

    def newsalary(self):
        if self.salary < 10000:
            self.__addsalary()
            print(self.salary)
        else:
            print(self.salary)


p = People("dailiang",16,300)
p2 = People("zhuzegang",73,50000)

print(p.newsalary())  #5300
print(p2.newsalary())  #50000

p.__addsalary()  #AttributeError: 'People' object has no attribute '__addsalary'

私有方法不能在外部通过实例被调用,但是在类内部可以调用

相关文章

  • 40.私有变量、方法实现类的封装

    私有变量 私有变量或者私有属性,一般以 双下划线开头 的变量可以在class内部通过方法调用,但是不能被实例化的对...

  • 精通掌握封装,多态,继承。

    精通掌握封装,多态,继承。①对于封装:OC没有私有方法但有一定意义上的私有变量,自己类的私有方法可 ...

  • iOS面向对象

    一、封装 隐藏内部实现,稳定外部接口。OC中一个类可以继承另一个类,子类直接拥有父类的非私有成员变量、方法。属性封...

  • python基础-09-面向对象、装饰器

    面向对象 类概念 类的定义 类的实例化 类和实例的属性 类的私有变量 数据封装 继承 多态 多继承 类的特殊方法 ...

  • 2018-06-28 python 类的私有变量和私有方法

    转发python 类的私有变量和私有方法 类的私有变量和私有方法在Python中可以通过在属性变量名前加上双下划线...

  • 面向对象的特征有哪些方面?

    封装让变量和访问这个变量的方法放在一起,将一个类中的成员变量全部定义成私有的,只有这个类自己的方法才可以访问到这些...

  • 1.1 OC中的私有方法

    本小节知识点: 【掌握】OC中的私有变量 【掌握】OC中的私有方法 1.OC中的私有变量 在类的实现即.m文件中也...

  • 继承,分类 和 扩展&组合&协议 & 关联对象

    类扩展(extension) 1. 为一个类增加私有的:属性,方法,成员变量 2. 类扩展没有 独立的实现部分(@...

  • 模块模式

    模块模式 模块 模式实在单例对象上加上扩展,通过作用域链来关联私有变量和特权方法对象字面量封装模块,闭包实现私有和...

  • python-面向对象:类和实例

    本文内容: 类的创建 类变量、类方法的创建和调用 实例变量、实例方法的创建和调用 静态方法的创建和调用 私有变量、...

网友评论

      本文标题:40.私有变量、方法实现类的封装

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