Java中,权限修饰符的权限测试

简介: ============================================================================= 1、 1 /* 2 权限修饰符的权限测试: 3 4 权限修饰符 本类中...

=============================================================================

1、

 1 /*
 2     权限修饰符的权限测试:
 3     
 4         权限修饰符        本类中    同一个包下的子类和无关类    不同包下的子类    不同包下的无关类
 5         private          Yes      No                       No              No
 6         默认              Yes      Yes                      No              No
 7         protected        Yes      Yes                      Yes             No
 8         public           Yes      Yes                      Yes             Yes
 9 */
10 
11 package com.liuyi;
12 
13 class Father {
14     private void show() {
15         System.out.println("show");
16     }
17     
18     void show2() {
19         System.out.println("show2");
20     }
21     
22     protected void show3() {
23         System.out.println("show3");
24     }
25     
26     public void show4() {
27         System.out.println("show4");
28     }
29     
30     public static void main(String[] args) {
31         Father f = new Father();
32             f.show();
33             f.show2();
34             f.show3();
35             f.show4();
36         }
37 }

在本类中,测试结果为:

=============================================================================

2、

 1 /*
 2     权限修饰符的权限测试:
 3     
 4         权限修饰符        本类中    同一个包下的子类和无关类    不同包下的子类    不同包下的无关类
 5         private         Yes       No                       No              No
 6         默认             Yes       Yes                      No              No
 7         protected       Yes       Yes                      Yes             No
 8         public          Yes       Yes                      Yes             Yes
 9 */
10 
11 package com.liuyi;
12 
13 class Father {
14     private void show() {
15         System.out.println("show");
16     }
17     
18     void show2() {
19         System.out.println("show2");
20     }
21     
22     protected void show3() {
23         System.out.println("show3");
24     }
25     
26     public void show4() {
27         System.out.println("show4");
28     }
29 }
 1 package com.liuyi;
 2 
 3 class Son extends Father {
 4     public static void main(String[] args) {
 5         Father f = new Father();
 6         //f.show();
 7         f.show2();
 8         f.show3();
 9         f.show4();
10         System.out.println("--------------");
11         
12         Son s = new Son();
13         //s.show();
14         s.show2();
15         s.show3();
16         s.show4();
17     }
18 }

在同一包下的子类中,测试结果为:(注意:在子类代码中分别测试了父类和子类)

=============================================================================

3、

 1 /*
 2     权限修饰符的权限测试:
 3     
 4         权限修饰符        本类中    同一个包下的子类和无关类    不同包下的子类    不同包下的无关类
 5         private         Yes       No                       No              No
 6         默认             Yes       Yes                      No              No
 7         protected       Yes       Yes                      Yes             No
 8         public          Yes       Yes                      Yes             Yes
 9 */
10 
11 package com.liuyi;
12 
13 class Father {
14     private void show() {
15         System.out.println("show");
16     }
17     
18     void show2() {
19         System.out.println("show2");
20     }
21     
22     protected void show3() {
23         System.out.println("show3");
24     }
25     
26     public void show4() {
27         System.out.println("show4");
28     }
29 }
 1 package com.liuyi;
 2 
 3 class Test {
 4     public static void main(String[] args) {
 5         Father f = new Father();
 6         //f.show();
 7         f.show2();
 8         f.show3();
 9         f.show4();
10     }
11 }

在同一包下的无关类中,测试结果为:

=============================================================================

4、

 1 /*
 2     权限修饰符的权限测试:
 3     
 4         权限修饰符        本类中    同一个包下的子类和无关类    不同包下的子类    不同包下的无关类
 5         private          Yes      No                       No              No
 6         默认              Yes      Yes                      No              No
 7         protected        Yes      Yes                      Yes             No
 8         public           Yes      Yes                      Yes             Yes
 9 */
10 
11 package com.liuyi;
12 
13 public class Father {
14     private void show() {
15         System.out.println("show");
16     }
17     
18     void show2() {
19         System.out.println("show2");
20     }
21     
22     protected void show3() {
23         System.out.println("show3");
24     }
25     
26     public void show4() {
27         System.out.println("show4");
28     }
29 }
 1 package cn.qx;
 2 
 3 import com.liuyi.Father;
 4 
 5 public class Son2 extends Father {  //Father在com.liuyi中不是公共的,无法从外部程序包中对其进行访问,需要在class Father前面加public修饰。
 6     public static void main(String[] args) {  //为了简便起见,以后所有的类的前面都加public修饰。
 7         Father f = new Father();
 8         //f.show();
 9         //f.show2();
10         //f.show3();
11         f.show4();
12         System.out.println("--------------");
13         
14         Son2 s = new Son2();
15         //s.show();
16         //s.show2();
17         s.show3();
18         s.show4();
19     }
20 }

在不同包下的子类中,测试结果为:(注意:在子类代码中分别测试了父类和子类)

=============================================================================

5、

 1 /*
 2     权限修饰符的权限测试:
 3     
 4         权限修饰符        本类中    同一个包下的子类和无关类    不同包下的子类    不同包下的无关类
 5         private         Yes       No                       No              No
 6         默认             Yes       Yes                      No              No
 7         protected       Yes       Yes                      Yes             No
 8         public          Yes       Yes                      Yes             Yes
 9 */
10 
11 package com.liuyi;
12 
13 public class Father {
14     private void show() {
15         System.out.println("show");
16     }
17     
18     void show2() {
19         System.out.println("show2");
20     }
21     
22     protected void show3() {
23         System.out.println("show3");
24     }
25     
26     public void show4() {
27         System.out.println("show4");
28     }
29 }
 1 package cn.qx;
 2 
 3 import com.liuyi.Father;
 4 
 5 class Test2 {
 6     public static void main(String[] args) {
 7         Father f = new Father();
 8         //f.show();
 9         //f.show2();
10         //f.show3();
11         f.show4();
12     }
13 }

在不同包下的无关类中,测试结果为:

 

=============================================================================

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
2月前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
448 2
|
2月前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
165 1
|
3月前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
58 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
3月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
50 5
|
3月前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
81 1
|
3月前
|
XML Java Maven
在 Cucumber 测试中自动将 Cucumber 数据表映射到 Java 对象
在 Cucumber 测试中自动将 Cucumber 数据表映射到 Java 对象
78 7
|
4月前
|
安全 Java 开发者
Java修饰符与封装:理解访问权限、行为控制与数据隐藏的重要性
Java中的修饰符和封装概念是构建健壯、易维护和扩展的Java应用程序的基石。通过合理利用访问权限修饰符和非访问修饰符,开发者能够设计出更加安全、灵活且高效的代码结构。封装不仅是面向对象编程的核心原则之一,也是提高软件项目质量和可维护性的关键策略。
48 1
|
4月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
84 6
|
3月前
|
分布式计算 Java 大数据
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
52 0
|
3月前
|
Java
java中的权限修饰符
java中的权限修饰符

热门文章

最新文章