Java匿名对象与匿名内部类

 更新时间:2018年03月01日 14:45:06   作者:彬菌  
本篇文章给大家详细讲解了Java匿名对象与匿名内部类的相关知识点,有兴趣的读者一起学习下。

匿名对象:没有名字的对象。

非匿名对象:

ClassName c=new ClassName();

c.run();

匿名对象:

new ClassName().run();

注意事项:

1、当对象对方法仅进行一次调用的时候,就可以简化成匿名对象。

2、两个匿名对象不可能是同一个对象。

3、一般不给匿名对象赋予属性值,因为永远无法获取到。

4、运行一次,直接就被回收掉了,节省内存空间。

匿名对象使用的代码例子:

public class Anony{
	int a=1;
	int b=2;
	void run(){
		System.out.println(a+b);
	}
	public static void main(String[] args){
		new Anony().a=10; //匿名对象不能重新赋值,赋值仍然失效
		Anony a=new Anony();
		a.run(); //通过创建对象的方式去调用方法
		new Anony().run(); //匿名创建对象并调用方法
	}
}

运行结果:

3
3

匿名内部类:匿名内部类也就是没有名字的内部类。

格式:

ClassName object=new ClassName(){

/*代码块*/

};

注意事项:

1、匿名内部类必须继承一个父类或实现一个接口。

抽象类代码例子:(接口同理)

abstract class AnonyTest{
	int a=1;
	int b=2;
	 public abstract void run();
}
public class AnonyInner{
	public static void main(String[] args){
		AnonyTest a=new AnonyTest(){ //抽象匿名类
			public void run() {
				System.out.println(a+b);
			}
		};
		a.run();
	}
}

如果不使用匿名内部类来实现抽象方法:

abstract class AnonyTest{
	int a=1;
	int b=2;
	 public abstract void run();
}
class AnonyDemo extends AnonyTest{
	public void run() {
		System.out.println(a+b);
	}
}
public class AnonyInner{
	public static void main(String[] args) {
		AnonyTest a=new AnonyDemo(); //上转对象
		a.run();
	}
}

运行结果:

3

相关文章

  • java生成csv文件乱码的解决方法示例 java导出csv乱码

    java生成csv文件乱码的解决方法示例 java导出csv乱码

    这篇文章主要介绍了java生成csv文件乱码的解决方法,大家可以直接看下面的示例
    2014-01-01
  • 如何在java中使用Jython

    如何在java中使用Jython

    这篇文章主要介绍了如何在java中使用Jython,由于项目中需要用到Java调用Python的脚本,来实现一些功能,就对jython做了一些了解,通过jython可以实现java对python脚本的调用,需要的朋友可以参考一下
    2022-03-03
  • logback标记日志过滤器MarkerFilter源码解读

    logback标记日志过滤器MarkerFilter源码解读

    这篇文章主要为大家介绍了logback标记日志过滤器MarkerFilter源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • spring关于组件的注入及获取流程场景分析

    spring关于组件的注入及获取流程场景分析

    这篇文章主要介绍了spring关于组件的注入及获取流程场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-07-07
  • Spark学习笔记Spark Streaming的使用

    Spark学习笔记Spark Streaming的使用

    这篇文章主要介绍了Spark学习笔记Spark Streaming的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • 教你使用idea搭建ssm详细教程(Spring+Spring Mvc+Mybatis)

    教你使用idea搭建ssm详细教程(Spring+Spring Mvc+Mybatis)

    今天教大家使用idea搭建ssm详细教程(Spring+Spring Mvc+Mybatis),文中有非常详细的图文介绍及代码示例,对正在学习使用idea的小伙伴很有帮助,需要的朋友可以参考下
    2021-05-05
  • springboot项目事务标签验证

    springboot项目事务标签验证

    本文主要介绍了springboot项目事务标签验证,文中通过示例代码介绍的非常详细,详细的介绍了不加事务标签和加事物标签的使用,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • SpringBoot2 Jpa 批量删除功能的实现

    SpringBoot2 Jpa 批量删除功能的实现

    这篇文章主要介绍了SpringBoot2 Jpa 批量删除功能的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • java基础学习笔记之反射

    java基础学习笔记之反射

    什么是反射?Java 程序在运行期间可以动态加载、解析和使用一些在编译阶段并不确定的类型数据,这一机制被称为反射(Reflection)。今天我们就来详细探讨下java中的反射
    2016-02-02
  • Java及Android中常用链式调用写法简单示例

    Java及Android中常用链式调用写法简单示例

    这篇文章主要介绍了Java及Android中常用链式调用写法,结合实例形式分析了java编程中的链式调用概念、简单使用方法及相关操作技巧,需要的朋友可以参考下
    2018-01-01

最新评论