关于 私有变量的访问问题【 java python]
2017-10-21 22:04
363 查看
#coding:utf-8 class Teacher(): __clas = '' # 类私有变量同样遵循,只能在类内部访问,外部无法访问,但是类的方法可以访问同类所有对象私有变量这个规则。 def __init__(self): __name = "" def get_name(self): return self.__name def equ(self,tac): return self.__name == tac.__name # __name 是私有变量,规定是私有变量只能在类内部访问。但是,类内部的方法,可以访问该类的所有实例对象的私有变量。 # 这种规则同样在java中使用 def equa(self,stu): # print(self.__name == stu.__namee) # 这里会报错,因为 Student类中 __namee 是私有变量。只能在类内部访问。 return self.__name == stu.get_name() #所以采用过这种方式。 def set_name(self,name): self.__name = name def set_stu_name(self,std): # std.set_name("liudaxia") class Student(): __age = '' def __init__(self): __namee ="" def get_name(self): return self.__namee def set_name(self,name): self.__namee = name if __name__ == "__main__": s1 = Student() s1.set_name("zhanzhao") t1 = Teacher() t1.set_name("LI") print(t1.equa(s1)) # False t2 = Teacher() t2.set_name("LI") print(t1.equ(t2)) # true t1.set_stu_name(s1) print(s1.get_name()) # liudaxia
class A{ private int a = 10; public void summ(A that){ this.a += that.a; // 虽然 a是私有变量,但是因为 that也属于 A类,所以其私有变量可以被访问。 } public void summ(B that){ // this.a += that.b // 访问 b 的私有变量将会出错 this.a += that.getB(); //采用这种方式访问私有变量 } } class B{ private int b = 20; public void mucc(B that){ this.b *= that.b; } public int getB(){ return this.b; } }
相关文章推荐
- java学习记录(四):关于匿名内部类和局部内部类只能访问final变量的问题
- java反射访问私有变量和私有方法
- 关于Java环境变量设置的一些问题
- 关于oracle设置不活动自动断开连接导致java访问数据库时发生异常的问题
- 关于java开发中path和classpath环境变量问题的总结
- 关于Java访问修饰符、访问权限的问题
- 关于Java设置环境变量后的调试出现问题的解决方案
- xcode4以后关于私有变量的定义问题
- java反射访问私有成员变量
- Java反射访问私有变量和私有方法相关搜集
- 关于java中对于成员变量的引用问题
- 注意访问器中的一个小细节,关于有访问器没有成员变量的问题
- 关于拷贝构造函数和赋值操作重载函数访问同类引用参数的私有变量的疑问
- 关于空指针类型的类变量的成员函数访问的问题
- 关于JAVA中变量的初始化及类属性的默认值问题
- 关于Python的class的私有变量扎压 Python的命名机制
- 关于访问C++类对象中私有成员变量的方法,不考虑用友元
- 关于在做java的Web开发中遇到跨域访问的问题的解决方法汇总
- [原创][分享]关于JAVA的环境变量设置问题
- 拷贝函数访问本类的私有变量的问题