`
李灵晖-raylee
  • 浏览: 135721 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

从头认识java-8.5 在方法和作用域里的内部类

 
阅读更多

这一章节我们来聊一下在方法和作用域里的内部类。

1.为什么需要在方法和作用域里的内部类?

(1)隐藏代码。

(2)处理复杂的问题,需要辅助类。

package com.ray.ch10;

public class Test {
	{
		class PDestination {
		}
	}

	public Destination test() {
		class PDestination implements Destination {

			private String target = "abc";

			@Override
			public String read() {
				return target;
			}
		}
		return new PDestination();
	}

	public static void main(String[] args) {

	}
}

interface Destination {
	String read();
}

上面的代码就是在方法里面加上一个类来辅助这个方法。


2.特性

(1)可以放在代码里面的任意地方。

package com.ray.ch10;

public class Test {
	{
		class PDestination {
		}
	}

	public Destination test() {
		Destination destination = null;
		if (true) {
			class PDestination implements Destination {

				private String target = "abc";

				@Override
				public String read() {
					return target;
				}
			}
			destination = new PDestination();
		}
		return destination;
	}

	public static void main(String[] args) {

	}
}

interface Destination {
	String read();
}

我们修改一下上面的代码,把class放到了if里面去,只有某些条件成立,才执行class里面的东西。


(2)在方法或者作用域这些地方放置类,是不影响外部类的命名。

从上面的代码可以看见,在代码块里面和方法里面的类的名称都是相同的,大家之间毫不影响。

因为PDestination都只是在各自的作用域里面起作用。到了外部,就没有这个类了。


(3)更加能够隐藏代码的实现。

在方法或者作用域里面,只能是里面的代码能够读取或者执行这个内部类,其他所有的地方都不可以。


总结:这一章节主要讲述了为什么需要在方法和作用域里的内部类,和这些内部类的一些特性。


这一章节就到这里,谢谢。

-----------------------------------

目录


分享到:
评论

相关推荐

    mchange-commons-java-0.2.11.zip

    1. **类文件**:这些是编译后的Java源代码,包含实现了各种功能的方法和类。它们可能包括数据结构、算法实现、线程管理、网络通信等通用工具类。 2. **资源文件**:可能包含如XML配置文件、图片、字体或其他非Java...

    eclipse-java-2021-12-R-win32-x86_64.zip

    对于现代Java开发,Maven的集成尤其重要,因为它能够管理项目的类路径、构建过程和依赖关系。 4. **调试器**:Eclipse 的内置Java调试器是其关键组件之一,它允许开发者设置断点、查看变量值、单步执行代码和分析...

    api-ntrip-java-client-master.zip_android_ntrip_ntrip java实现_ntr

    标题中的“api-ntrip-java-client-master.zip”是一个包含Java实现的NTRIP客户端的源代码压缩包,专门针对Android平台。NTRIP(Networked Transport of RTCM via Internet Protocol)是一种用于实时传输GPS(全球...

    aip-java-sdk-4.2.0

    2. **aip-java-sdk-4.2.0.jar**:这是核心的AIP Java SDK库文件,包含了所有用于与百度AI平台交互的类和方法。开发者需要引入这个jar文件到他们的Android项目中,才能使用SDK提供的功能。 3. **json-20160810.jar**...

    java-Swing外观包

    UIManager是Swing中管理组件外观的中心类,它提供了设置和获取LookAndFeel的方法。例如,以下代码将应用系统默认的LookAndFeel: ```java try { UIManager.setLookAndFeel(UIManager....

    aspose-words-java-23.6-jdk17.jar.zip

    在Java代码中,他们可以通过导入Aspose.Words相关的类和方法,开始执行文档处理任务。例如,下面是一个简单的例子,演示如何使用Aspose.Words读取和保存一个Word文档: ```java import com.aspose.words.Document; ...

    手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip

    【标题】: "手把手 - 微服务 Windows 开发环境从头搭建 2022-09-05 直播录像 - 软件安装包-2.zip" 这个压缩包文件包含了搭建微服务开发环境所需的基础软件,包括JDK(Java Development Kit)和MySQL数据库。在...

    Java---笔试题大全

    - **抽象**:抽象是将复杂问题简化的过程,分为过程抽象(方法)和数据抽象(类)。它帮助我们关注问题的核心部分,忽略不相关的细节。 - **继承**:继承允许子类继承父类的属性和方法,减少代码重复,提高了代码...

    JAVA编程高级-工具类.pdf

    通过上述内容的学习,读者可以更加深入地理解Java中的高级工具类以及如何在实际编程中运用这些工具类来提高代码质量和效率。此外,对于初学者来说,掌握这些工具类的基本用法是非常有帮助的,可以帮助他们更快地编写...

    Java语言常用的方法名.doc

    - **定义**: 每个 Java 类都可以定义一个特殊的方法——finalizer,该方法由 JVM 在对象被垃圾回收之前调用。 - **特点**: - finalizer 方法不能被直接调用。 - finalizer 方法通常用于释放外部资源。 - **用途**:...

    java-多文件上传dome

    在Java编程中,多文件上传是一项常见的功能,特别是在web应用中,用户可能需要上传多个文件,如图片、文档等。本示例"java-多文件上传dome"提供了一个工具包,可直接下载使用,方便开发者快速实现多文件上传功能。 ...

    java-lib

    这些库通常以JAR(Java Archive)文件的形式存在,里面封装了类和方法,可供应用程序调用。Java库广泛应用于网络通信、数据库操作、图形用户界面(GUI)、数学计算、XML处理、安全、并发等各个领域。 1. **网络通信...

    使用渲染脚本实现模糊视图背景 - Java - 下载.zip

    1. **源代码**:这是实现模糊视图背景的核心部分,可能包含Java类和方法,用于处理图像并应用模糊效果。 2. **示例应用**:可能包含一个简单的Java应用,演示如何使用库来创建模糊视图背景,这对于开发者理解和学习...

    _Java-集合容器-2.List及其实现类.ppt

    在Java编程中,集合容器是数据管理的重要组成部分,它们提供了灵活且高效的方式来存储和操作对象。List接口是Java集合框架中的核心接口之一,它继承自Collection接口,并具有特定的特性:元素可以重复,保持元素的...

    j从头开始学java

    1. **Java语言概述**:这部分通常会介绍Java的历史背景、特点和应用领域,以及如何在计算机上安装Java开发环境,包括JDK(Java Development Kit)的下载与配置。还会讲解Java程序的基本结构,如 HelloWorld 示例,让...

    java-sdk-master.zip_leancound集成第三方插件_即时通讯

    Java SDK是许多软件开发中的重要组成部分,特别是在与服务器端交互时...通过学习和使用这个SDK,开发者可以迅速在自己的应用中实现稳定、可靠的即时通信功能,而无需从头构建整个通讯系统,大大节省了开发时间和资源。

    curso-java-pildorasInf:从头开始学习Java

    【标题】:“curso-java-pildorasInf:从头开始学习Java” 这门“从头开始学习Java”的课程,源自"PillsInformática"的教育资源,旨在为初学者提供全面的Java编程知识。Java是一种广泛使用的面向对象的编程语言,由...

    Free Spire.Doc for Java - 3.9 无水印

    `Free Spire.Doc for Java` 是一款专为Java开发者设计的文档处理库,它允许用户在Java应用程序中创建、编辑和转换Microsoft Word文档。这个3.9版本提供的是无水印版本,意味着开发者可以免费试用并用于商业项目,而...

    ks-java-lib:包含 Java 的 KS 库

    使用 KS Java 库时,开发者需要按照库的文档说明将其添加到项目依赖中,然后通过导入相应的类和方法来使用库的功能。同时,为了确保代码的健壮性,开发者还应该参考提供的测试用例进行自我测试,并遵循库的更新维护...

Global site tag (gtag.js) - Google Analytics