Java学习日记1——访问修饰符

学习了很久的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

posted @ 2020-01-16 23:21  RainCurtain  阅读(145)  评论(0)    收藏  举报