Java内部类实例解析:权限控制与跨包访问

需积分: 9 13 下载量 140 浏览量 更新于2024-08-18 收藏 3MB PPT 举报
在Java基础教程中,本文重点介绍了内部类(Inner Classes)的实例三,特别是关于访问修饰符对内部类的影响。在"SamePackClass"这个例子中,我们看到一个公共类试图访问一个包内嵌套的内部类。内部类可以分为四种访问级别:public、protected、friendly(友元)和private。在这个特定的示例中: 1. **公共内部类(PublicInnerClass)**:`getPublicInnerClass()`方法返回的是公共内部类,由于它是公共的,外部类SamePackClass可以毫无问题地创建并调用其方法`M1()`,体现了Java的开放原则。 2. **受保护内部类(ProtectedInnerClass)**:`getProtectedInnerClass()`返回的是受保护内部类。尽管它在包内可见,但因为SamePackClass不在InnerPrwider的子包中,所以访问权限受限,可能会导致编译错误或运行时异常,除非有明确的访问权限允许。 3. **友好内部类(FriendlyInnerClass)**:友好内部类通常用于允许非包内类访问,但案例中并未提及如何获取,可能是友好内部类的使用场景不同,或者这里只是为了展示访问层次。 4. **私有内部类(PrivateInnerClass)**:由于它是私有的,外部类SamePackClass无法直接访问,即使在同一个包内也不行。尝试访问私有内部类会导致编译错误,这是因为Java的封装原则,确保了数据的安全性和隐藏。 此外,文章还简要回顾了Java的一些核心概念,包括但不限于: - **Java语言特点**:Java以其简单性、平台无关性、面向对象性(封装、继承、多态)、垃圾回收机制和丰富的类库著称。它旨在提供可靠、安全、高性能的编程环境,并且设计上避免了C++中的复杂概念,如指针和多重继承。 - **Java的发展历史**:从Sun Microsystems的绿色项目(Oak)到Java语言的诞生和广泛应用,以及Java语言在消费电子、互联网和企业级应用中的广泛接纳,展示了Java语言的成长历程。 总结来说,本篇内容主要讨论了Java内部类的访问控制以及Java语言的关键特性,通过实例演示了Java编程中如何处理不同类型的内部类以及访问限制。这有助于理解Java面向对象编程的深入实践和语言特性。