使用注意事项:

  • 修饰符可以用来修饰类中的属性,成员方法以及类
  • 只有默认的和public才能修饰类,并遵循上述访问权限的特点。

(public修饰的类其类名和文件名保持一致)

  • 成员方法的访问规则和属性一样。

image.png

A

  1. package test;
  2. public class A {
  3. //四个属性
  4. public int n1 = 100;
  5. protected int n2 = 100;
  6. int n3 = 100;
  7. private int n4 = 100;
  8. public void m1(){
  9. //该方法可以访问四个属性
  10. System.out.println("n1 = " + n1 + " n2 = " + n2 + " n3 = " + n3 + " n4 = " + n4);
  11. }
  12. protected void m2(){}
  13. void m3(){}
  14. private void m4(){}
  15. public void hi(){
  16. //在同一个类中,可以访问public protected 默认 private修饰属性和方法
  17. m1();
  18. m2();
  19. m3();
  20. m4();
  21. }
  22. }

B

  1. package test;
  2. public class B {
  3. public void say(){
  4. A a = new A();
  5. //在同一个包下,可以访问public, protected 和 默认修饰属性或方法, 不能访问private
  6. System.out.println("n1 = " + a.n1 + " n2 = " + a.n2 + " n3 = " + a.n3);
  7. //报错,n4为私有属性,只能在同类中访问
  8. //System.out.println(" n4 = " + a.n4);
  9. a.m1();
  10. a.m2();
  11. a.m3();
  12. //a.m4();private 报错
  13. }
  14. }

Test

  1. package test;
  2. public class Test {
  3. public static void main(String[] args) {
  4. A a = new A();
  5. a.m1();
  6. B b = new B();
  7. b.say();
  8. }
  9. }
  10. //只有默认和public可以修饰类
  11. class tt{}//正确
  12. //protect class tt{}//报错
  13. //private class tt{}//报错
  14. //public修饰的类其类名和文件名保持一致

image.png