学习了很久的Java,一直没想起来做个笔记,只顾得去体会一下Java的语言逻辑,今天开始做一下吧。
Java的基本语法不多说,和C++差不太多。
由于Java完全面向对象,所以我觉得Java的权限修饰符很重要,掌握起来也感觉不是那么容易。
因为我还没学接口,所以如下权限只是在类层次谈论。
Java的权限修饰符有如下几种:
private default protected public
其中,private的限制最严格,被其修饰的变量和方法只有本类才可以使用
而default则是在同一包内可以访问
public则是在任何地点都可以调用
protected在本包内和子类中可以调用,注意,如果父子类不在同一个包,那么父类的protected方法只能在子类中可以调用,而不是子类可以调用。
如下代码:
1 package testProtected.test; 2 3 public class Father { 4 protected int num; 5 protected void showNum(){ 6 System.out.println(num); 7 } 8 } 9 10 package testProtected.test; 11 12 public class Son1 extends Father { 13 public void main(){ 14 num = 2; 15 showNum(); 16 } 17 } 18 19 20 package testProtected.test2; 21 22 import testProtected.test.Father; 23 24 public class Son2 extends Father { 25 public void main(){ 26 num = 1; 27 showNum(); 28 } 29 } 30 31 package testProtected.main; 32 33 import testProtected.test.Father; 34 import testProtected.test.Son1; 35 import testProtected.test2.Son2; 36 37 public class main { 38 public static void main(String[] args) { 39 Father fa1 = new Father(); 40 Son1 son1 = new Son1(); 41 Son2 son2 = new Son2(); 42 fa1.showNum();//error,因为不在同一包 43 son1.showNum();//error 44 son2.showNum();//error 45 son1.main();//ok 46 son2.main();//ok 47 } 48 }
当然情况可以更复杂,这里贴一个菜鸟教程的链接:
https://www.runoob.com/w3cnote/java-protected-keyword-detailed-explanation.html
原文:https://www.cnblogs.com/RainCurtain/p/12203738.html