Analyze the public, protected, private, and default access permissions of java from the perspective of instances, publicprotected
1. public
Same package
1. Internal
Public class A {public int f = 1; public void m1 () {} public void m2 () {f = 2; // class internal normal access m1 (); // class internal normal access }}
2. Subclass
package same;public class A { public int f=1; public void m1() {}}
Package same; public class B extends A {public void m2 () {f = 2; // call the public member variable m1 () of the parent class (); // call the public Member method of the parent class }}
3. Common classes
package same;public class A { public int f=1; public void m1() {}}
Package same; public class B {public static void main (String [] args) {A = new a ();. f = 2; // access A from the public member variable in the image of Class a in the same package. m1 (); // access the public member method in the image of Class A in the same package }}
Between different packages
1. Subclass
package same;public class A { public int f=1; public void m1() {}}
Package other; import same. a; public class B extends A {public void m2 () {f = 2; // access m1 () for the public member variable of class (); // access the public member method of Class }}
2. Common classes
package same;public class A { public int f=1; public void m1() {}}
Package other; import same. a; public class B {public static void main (String [] args) {A a = new A ();. f = 2; // different packages access. m1 (); // access the public member method in the image of Class A between different packages }}
Ii. protected
Same package
1. Internal
Package same; public class A {protected int f = 1; protected void m1 () {} public void m2 () {f = 2; // access the protected member variable m1 () of this class; // access the protected member method of this class }}
2. Subclass
package same;public class A { protected int f=1; protected void m1() {}}
Package same; public class B extends A {public void m2 () {f = 2; // access the protected member variable m1 () of the parent class (); // access the protected member method of the parent class }}
3. Common classes
package same;public class A { protected int f=1; protected void m1() {}}
Package same; public class B {public void m2 () {A a = new A ();. f = 2; // access the protected member variable of Class. m1 (); // access the protected member method of Class A's object }}
Between different packages
1. Subclass
package same;public class A { protected int f=1; protected void m1() {}}
Package other; import same. a; public class B extends A {public void m2 () {f = 2; // access m1 () for the protected member variable of class (); // access the protected member method of Class }}
2. Common classes
package same;public class A { protected int f=1; protected void m1() {}}
Package other; import same. a; public class B {public void m2 () {A a = new A (); //. f = 2; Class A cannot access the protected member variable of the image. //. m1 (); the method for the protected member variable of the Class A Object }}
Iii. default
Same package
1. Internal
Package same; public class A {int f = 1; void m1 () {} public void m2 () {f = 2; // access the default member variable m1 () of this class; // access the default member method of this class }}
2. Subclass
package same;public class A { int f=1; void m1() {}}
Package same; public class B extends A {public void m2 () {f = 2; // access the default member variable m1 () of class A objects (); // access the default member method of Class A Object }}
3. Common classes
package same;public class A { int f=1; void m1() {}}
Package same; public class B {public void m2 () {A a = new A ();. f = 2; // access the default member variable. m1 (); // access the default member method of Class A objects }}
Between different packages
1. Subclass
package same;public class A { int f=1; void m1() {}}
Package other; import same. a; public class B extends A {public void m2 () {// f = 2; unable to access the default member variable of class A // m1 (); unable to perform the default member variable method for Class }}
2. Common classes
package same;public class A { int f=1; void m1() {}}
Package other; import same. a; public class B {public void m2 () {A a = new A (); //. f = 2; cannot access the default member variable of the Image of Class A. //. m1 (); Method for the default member variable of Class A's object }}
Iv. private
Same package
1. Internal
Package same; public class A {private int f = 1; private void m1 () {} public void m2 () {f = 2; // access the private member variable m1 () of this class; // access the private member method of this class }}
2. Subclass
package same;public class A { private int f=1; private void m1() {}}
Package same; public class B extends A {public void m2 () {// f = 2; private member variables of class A cannot be accessed // m1 (); unable to access the private member method of Class }}
3. Common classes
package same;public class A { private int f=1; private void m1() {}}
Package same; public class B {public void m2 () {A a = new A (); //. f = 2; the private member variable of Class A objects cannot be accessed. //. m1 (); unable to access the private member method of Class A Object }}
Between different packages
1. Subclass
package same;public class A { private int f=1; private void m1() {}}
Package other; import same. a; public class B extends A {public void m2 () {// f = 2; unable to access the private member variable of class A // m1 (); unable to perform the private member variable method for Class }}
2. Common classes
package same;public class A { private int f=1; private void m1() {}}
Package other; import same. a; public class B {public void m2 () {A a = new A (); //. f = 2; cannot access the private member variable of the Image of Class A. //. m1 (); Method for private member variable of Class A's object }}