Как говорится, нет квадратного или круга без правил. Будучи строгим объектно-ориентированным языком программирования высокого уровня, Java, естественно, строго контролирует весь важный вопрос разрешений.
В Java вы можете установить разрешения на контроль доступа через некоторые ключевые слова Java;
В основном включайте частное (частное), пакет (разрешение на доступ к пакетам), защищенную (разрешение на доступ к подклассу) и общедоступный (разрешение на общедоступное доступ)
В Java эти утверждения могут изменять переменные членов и методы в классе, но только публичные и дружественные типы могут изменять классы. Например:
Далее, давайте подробно объясним различия между этими разрешениями (в конце блога есть таблица) от низкого до высокого уровня в соответствии с разрешениями: (высокие разрешения имеют все характеристики низких разрешений)
Частный:
Все частные методы и переменные частных участников в классе можно получить только в классе, а не в других классах.
Например:
Пакет Main; открытый класс private {private int a; private int b; protected () {this.a = 1; this.b = 2; // a и b может быть вызвано только в частных классах} private void set () {System.out.println ("+a+" "+b+"/n ");} void print () {this.set ().Дружелюбный и защищенный:
Если в другом классе объявлено в другом классе, если эти два находятся в одном пакете, то другой класс может получить доступ к дружественным переменным другого класса. Различные пакеты не могут получить доступ:
If another class A is declared in another class B, if these two are in one package, then another class B can also access the protected variable (or method) of this other class A. If not in a package, then if class A has a parent class C. If, if there is a protected variable (or method) in the parent class C, as long as B and C are in a package, B can use the protected method inherited from the parent class in A. If A is a subclass of B, if AB is not in пакет, затем A может использовать защищенный метод в B.
Например:
Package Main; импорт защищен.*; открытый класс Main {public static void main (String args []) {Защищенный JKL = new Protectect (); jkl.print (); // Вызов защищенного метода JKL Parent Class Frindly Prot = new Frindly (); System.out.println (Prot.A); // Calline Calling Method Cally Insalln; Class}} пакет Main; открытый класс frindly {int a, b, c, d; frindly () {a = b = c = d = 1;} void set () {System.out.print (""+a+""+b+"/n");}} main; ProtectedFather () {this.a = 1; this.b = 2; // a и b может быть вызвана только в защищенной} private void set () {System.out.println (""+a+""+b+"/n");} Protected void print () {set (); // используется здесь только; Protected () {super (); // Вызов метода защиты конструктора Super.a = 12 в родительском классе в другом пакете; // вызов переменной защиты родительского класса}}Публика:
Если метод или переменная в классе являются общедоступными, его можно вызвать в других классах без ограничений (используется в пакете Scoop). Выйдите из класса B в других пакетах
пакет Main; импорт public.*; открытый класс Main {public static void main (String args []) {int a; public p = new public (); // Вызов публичного метода в публичном классе A = pa; // Вызов публичной переменной P.Set () в публичном классе;}} package public; public public {public a = 12; public void set () {system.out.print.print {o = a = 12; public void set () {system.out.print.print.Сводная форма:
| Тот же пакет | Разные пакеты | |||
Подкласс | Не-SUBCLASS | Подкласс | Не-SUBCLASS | ||
Частный | да | нет | нет | нет | нет |
Дружелюбно | да | да | да | нет | нет |
Защищен | да | да | да | да | нет |
Публичный | да | да | да | да | да |
Суммировать
Выше приведено все содержание этой статьи о кратком обсуждении четырех типов разрешений в Java объектно-ориентированных, и я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!