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

从头认识java-8.6 匿名内部类

 
阅读更多

这一章节我们来讨论一下匿名内部类。

我们之前已经提到了内部类,如下:

package com.ray.ch03;

public class Test {
	private class OneTest implements MyTest {
		@Override
		public void test() {
		}
	}

	private MyTest myTest() {
		return new OneTest();
	}

	public static void main(String[] args) {
		new Test().myTest();
	}

}

interface MyTest {
	void test();
}


上面的内部类看上去没什么问题,但是很多时候我只需要它来辅助,其他地方基本用不上,因此,我们可以简化一下,变成匿名内部类,只是用来辅助方法的。

注意:匿名内部类的实现需要接口或者抽象类来配合

我们将上面的代码修改一下,变成下面的例子:

package com.ray.ch03;

public class Test {

	private MyTest myTest() {
		return new MyTest() {
			@Override
			public void test() {
			}
		};
	}

	public static void main(String[] args) {
		new Test().myTest();
	}

}

interface MyTest {
	void test();
}

笔者总结了几个注意点:

1.只能在继承或者实现接口里面选一个,不可两者兼备

2.不能够定义构造函数

3.不能使用static

4.不能是抽象的


package com.ray.ch03;

public class Test {

	private MyTest myTest() {// 不能继承MyTest2,只能是在返回类型是MyTest2的时候才能。
		return new MyTest() {
			// public MyTest(){}//error
			// private static int id=1;//error

			@Override
			public void test() {
			}
		};
	}

	public static void main(String[] args) {
		new Test().myTest();
	}

}

interface MyTest {
	void test();
}

class MyTest2 {
}


总结:这一章节我们简单讲述了一下匿名内部类。


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

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

目录



分享到:
评论

相关推荐

    Rocky-Linux-8.6-x86_64.rar

    3. "Rocky-8.6-x86_64-minimal.iso":这是最小化安装镜像,仅包含最基本的操作系统组件,适合那些希望从头定制系统或需要轻量级部署的用户。 "CHECKSUM"表示提供了校验和文件,用于验证下载的ISO文件是否完整无损。...

    mchange-commons-java-0.2.11.zip

    在Java开发中,这样的库可以极大地提高开发效率,因为它封装了常见的功能,开发者可以直接使用,而无需从头编写代码。 描述中的 "mchange-commons-java-0.2.11.jar包" 是该库的主要组成部分,是一个Java归档(JAR)...

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

    用户可以轻松地导入现有的Java项目,或者从头开始创建新的项目,包括Maven或Gradle构建系统。 3. **构建工具**:Eclipse 集成了构建工具,如Ant和Maven,使得构建和管理项目依赖变得简单。对于现代Java开发,Maven...

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

    - **Android Socket编程**:使用Java的Socket类建立与NTRIP服务器的连接,收发数据。 - **JSON或XML解析**:NTRIP数据可能以这两种格式传输,需要解析成Java对象。 - **Android权限管理**:可能需要获取网络访问权限...

    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**...

    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-Swing外观包

    在"Swing外观包.jar"这个文件中,可能包含了一些预设的LookAndFeel实现或者定制的LookAndFeel类,以便开发者可以直接导入并应用于他们的项目中,无需从头开始编写。这大大简化了创建独特界面的过程,使得开发者可以...

    JAVA编程高级-工具类.pdf

    `Object`类是所有Java类的基类,也就是说所有的类都直接或间接地继承自`Object`。因此,`Object`类中定义的方法可以在所有类中使用。 - **Object类常用方法** - `public boolean equals(Object obj)`:比较两个...

    Java---笔试题大全

    Java是一种广泛使用的面向对象的编程语言,其特点包括抽象、继承、封装和多态性。在Java笔试中,这些概念经常被考察。 1. **面向对象的特征**: - **抽象**:抽象是将复杂问题简化的过程,分为过程抽象(方法)和...

    java-多文件上传dome

    在Java编程中,多文件...通过这个"java-多文件上传dome"工具包,你可以快速实现上述功能,无需从头编写所有代码。不过,记得在实际项目中,除了功能实现,还要关注性能、安全性和可维护性,确保应用程序的稳定运行。

    PyPI 官网下载 | maaklas-0.1.8.6-py2.py3-none-any.whl

    **PyPI 官网下载 | maaklas-0.1.8.6-py2.py3-none-any.whl** PyPI(Python Package Index)是Python社区的官方软件仓库,为Python开发者提供了一个集中发布和下载Python库的地方。在这个场景中,我们讨论的是名为...

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

    Java SDK是许多软件开发中的重要组成部分,特别是在与服务器端交互时。在这个名为"java-sdk-master.zip"的压缩包中,包含的是Leancound的Java SDK,这是一个专为集成Leancound服务而设计的开发工具包。Leancound是...

    java-lib

    在Java编程中,库(Library)是预先编写好的代码集合,程序员可以导入并直接使用,无需从头开始编写所有功能。这些库通常以JAR(Java Archive)文件的形式存在,里面封装了类和方法,可供应用程序调用。Java库广泛...

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

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

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

    学习List接口及其实现类是理解Java集合框架的关键步骤。通过熟练掌握这些知识,开发者可以更有效地组织和操作数据,提高代码的效率和可维护性。在实际开发中,根据需求选择合适的List实现类,如需要高效随机访问则...

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

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

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

    【标题】"ks-java-lib:包含 Java 的 KS 库" 提供的是一个专门为 Java 开发者设计的库,它扩展了 Java 的功能,为开发者在处理特定任务时提供了便利。这个库可能包含了丰富的类和方法,旨在简化开发过程,提高代码的...

    Free Spire.Doc for Java - 3.9 无水印

    在Java项目中,首先需要将`lib`目录下的`Spire.Doc.jar`库文件引入到类路径中。然后,可以通过以下基本步骤开始使用: 1. 创建`Document`对象,加载或新建Word文档。 2. 使用各种API添加或修改文档内容。 3. 调用`...

Global site tag (gtag.js) - Google Analytics