一: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