java基础知识:私有成员变量
一:private 保护类中的变量
Person类
package 类; public class Person { String name; // 使用private修饰的变量,只能本类中访问,导包导入后,不能使用 类似于python里面的 _age = 10 private int age; public void call(){ System.out.println("我叫:"+name + ",年龄:"+age); } // 为了让外部能够访问到age这个属性,需要使用特定的方法,python里面也有 // set是设置,通过暴露这个方法让外部来设置私有变量 public void setAge (int num){ age = num; } public void setName(String flag){ name = flag; } // get是获取,通过暴露着这个方法让外部来获取私有变量 public String getName(String flag){ name = flag; return name; } }
外部访问Person类
package 类; public class Demo_Person { public static void main(String[] args) { Person people = new Person(); // age是private,外部不能导入 // System.out.println(people.age); // 类中设置专门的方法来改变age people.setAge(20); people.setName("王小二"); people.call(); // 类中有专门的方法来间接访问类属性 String name = people.getName("刘德华"); System.out.println(name); } }
private是访问控制修饰符,用来使用访问控制符来保护对类、变量、方法和构造方法的访问。不能直接访问,但是通过方法可以间接访问类中的变量
python里面是通过__age,两个下划线来定义私有变量的,外界也是无法访问
Person.py
class PersonDemo(): __age = 10 __name = "张学友"
Use_Person.py
from python知识点 import Person p = Person.PersonDemo() print(p.__age) print(p.__name) # 结果 Traceback (most recent call last): File "F:/pycharm测试功能文件夹/python知识点/Use_Person.py", line 4, in <module> print(p.__age) AttributeError: 'PersonDemo' object has no attribute '__age'
如果外界要访问和修改,必须通过类中的set__age和set__name/get__age和get__name
Person.py
class PersonDemo(): __age = 10 __name = "张学友" def get__age(self): return self.__age def get__name(self): return self.__name def set__age(self,num): self.__age = num def set__name(self,nick): self.__name = nick
Use_Person.py
from python知识点 import Person p = Person.PersonDemo() print(p.get__age()) print(p.get__name()) p.set__age(20) p.set__name("刘德华") print(p.get__age()) print(p.get__name()) # 结果 10 张学友 20 刘德华
# TODO