首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java基础】匿名

昨天后台的一个小伙伴提到了,java里面的匿名,这个概念在平常java码代码的时候用的特别多,所以找了一篇介绍表述比较清晰的文章分享给大家,能极大的简化代码量,是java编码基本功,属于必须掌握的范畴...匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父或实现一个接口 实例1:不使用匿名内部类来实现抽象方法...然后实现了Child的一个实例,将其向上转型为Person的引用 但是,如果此处的Child只使用一次,那么将其编写为独立的一个岂不是很麻烦?...中的方法在大括号中实现了 这样便可以省略一个的书写 并且,匿名内部类还能用于接口上 实例3:在接口上使用匿名内部类 interface Person { public void eat();}...,那么其子类中的方法都可以使用匿名内部类来实现 最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread或是继承Runnable接口 实例4:Thread匿名内部类实现 public

75270
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java匿名对象和匿名的简单理解

    但是怀着疑问我又去查了一下匿名。...经过查阅资料我们总结一下匿名匿名对象,之后可能你看作者的代码可能会理解。 一、匿名对象  匿名对象:通俗的来说就是——没有名字的对象!...,匿名内部类必须继承一个父,或实现一个接口,但最多只能继承一个父,或实现一个接 口。...如果通过继承父来创建匿名内部类时,匿名内部类将拥有和父相似的  构造器,此处的相似指的是拥有相同的形参列表。...(3)、在Java 8之前,Java要求被局部内部类、匿名内部类访问的局部变量必须使用final修饰,从Java 8开始这个限制取消  了,Java 8更加智能:如果局部变量被匿名内部类访问,那么该局部变量相对于自动使用了

    97251

    Java 加载之匿名和主相互依赖问题

    // class com/sxzhongf/daily/question/july/ClassInitializedOrder$1,可以明显看到从之前的invokeDynamic 变成了 new 一个匿名.../lang/InterruptedException.printStackTrace:()V 40: return 查看#16,看到的还是new了一个匿名,和上一个是一样的,为什么就可以成功呢...这个在于当前匿名中没有依赖主的代码信息。不存在上下依赖,那么就不会出现相互等待的情况发生,当然也就不会出现block。 那么就有朋友会问,为什么会相互等待呢?...Result 匿名内置的初始化不能依赖于外部类的初始化 lambda表达式中invokeDynamic作为主字节码的一部分,需要等待主初始化完成才能开始执行 总之,在的初始化阶段,不能出现内置...(匿名/Lambda)和主初始化中相互依赖的对象

    51820

    PHP匿名的用法

    PHP匿名的用法 在PHP7之后,PHP中加入了匿名的特性。匿名匿名方法让PHP成为了更现代化的语言,也让我们的代码开发工作越来越方便。我们先来看看匿名的简单使用。...匿名可以直接定义给变量,可以在方法中使用return返回,也可以当做参数传递给方法内部。其实,匿名就像一个没有事先定义的,而在定义的时候直接就进行了实例化。...也就是说,匿名在使用方面和普通并没有什么不同。但如果用get_class()获取名将是系统自动生成的名。相同的匿名返回的名称当然也是相同的。...// 匿名的名称是通过引擎赋予的 var_dump(get_class($objC)); // 声明的同一个匿名,所创建的对象都是这个的实例 var_dump(get_class(testA()...) == get_class(testA())); 那么匿名中的静态成员呢?

    94820

    Java--多态性之内部类和匿名

    在方法的一个作用域内定义的 一个匿名,用于实现一个接口 一个匿名,用于扩展拥有非默认构建器的一个 一个匿名,用于执行字段初始化 一个匿名,通过实例初始化进行构建(匿名内部类不可拥有构建器)...匿名内部类: public class Parcel6 { public Contents cont() { return new Contents() { //匿名...这种奇怪的语法要表达的意思是:“创建从 Contents 衍生出来的匿名的一个对象”。由 new 表达式返回的 句柄会自动上溯造型成一个Contents 句柄。...i; } } return new MyContents(); 由于没有名字,所以匿名没有构造器,所以我们也不能直接生成一个匿名的对象,但我们可以通过包含匿名的方法来实现: public class...,而且该方法可以认为是匿名的构建方法,当然它的功能是有限的:因为无法重载,所以“构建器”只能有一个。

    63260

    Java的内部类和匿名 , 您了解过吗?

    最初在大二入门Java的时候,我就了解过Java匿名和内部类,那时候觉得这些都是理论性的东西,实际开发不一定能用到,于是就淡化了。...可以说,上面这段程序才是真正意义上的Java实体Bean。 ---- 二、内部类 我的理解:内部类就是,依附于普通中,可以间接实现Java的多继承。...如果你对Java的访问权限不熟悉,可以看一下我这篇文章《一文搞懂Java的 构造方法 和 访问权限》 内部类主要有四种,分别是成员内部类、方法内部类、静态内部类、匿名内部类。...匿名内部类是一种特殊的内部类,这种类没有名字,通过new关键字直接创建某一个匿名子类的对象来使用。 以下情况需要用到匿名: 只用到的一个实例。 在定义后马上用到。...---- 4.匿名内部类,直接new一个没有名字的,并且直接调用其中的方法。

    26520

    java匿名对象_匿名对象概念和使用

    Person person = new Person(“骚杰”, 66, ‘男’); Person 名 person 对象名 new Person(…) 像内存的堆区申请空间,创建一个Person...对象使用的内存空间 匿名对象 没有名字的对象,没有对象名的对象 格式: new 构造方法(所需参数) 用途 1....提高开发效率,隐形眼镜日抛,一次性筷子 匿名对象当前行使用之后,如果没有其他引用数据类型的变量保存其地址,直接销毁 2. 简化代码结构 3. 通过匿名对象直接调用成员方法 4....// 通过匿名对象调用方法之后,当前匿名对象销毁 new Dog().sleep(); // 只要有new关键字,重新创建对象,不存在同一个对象 System.out.println(new Dog(...,有去无回 // 以下代码中是三个完全不同的Dog对象,给其中任何一个赋值都是无法取出的 new Dog().name = "骚杰"; new Dog(); System.out.println(new

    62040

    Java一分钟之-Java内部类与匿名

    Java内部类和匿名是两种特殊的定义方式,它们在处理特定场景时能提供强大的功能。本文将深入浅出地介绍这两种类的使用,常见问题、易错点及其避免策略,并附带代码示例。...匿名没有名字,常用于创建一次性的、简短的子类实现。...避免策略 明确了解内部类和嵌套的区别,根据需要选择合适的方式。 易错点2:匿名的生命周期管理 匿名的对象常被当作局部变量使用,因此要关注其生命周期,避免内存泄漏。...避免策略 确保及时释放匿名的对象引用,遵循正常的Java内存管理规则。 常见问题:内部类的访问权限 内部类可以访问外部类的所有成员,可能导致意外的耦合。...避免策略 合理设计的封装,避免过度依赖内部类。 结语 Java内部类和匿名提供了灵活的定义方式,使我们能够处理复杂的代码结构。理解它们的工作原理,避免常见问题,可以提升代码的可读性和可维护性。

    20110

    Java——深入分析与对象(封装性、构造方法与匿名对象、简单Java开发原则)

    1、封装性 Java中所有面向对象的概念都是以与对象的关系为主,下面用一个程序说明为什么要提供有封装性。...,在Java中的明确要求,使用setter、getter方法设置或取得封装属性内容,eg: class Person{ private String name; private...2、构造方法与匿名对象 2.1、构造方法 构造方法的定义,要求方法名称与名称相同,且没有返回值类型声明。构造方法只有在使用关键字new实例化对象的时候才会被调用,如下程序所示。...2.2、匿名对象 匿名对象指的是没有名字的对象,对象的名字都保存在了栈中。 如:Person per = new Person("张三",10); 就是有名对象,per是对象的名。...3、简单Java开发原则 1)名称必须具备实际意义,可明确描述某一实体,eg:学生、雇员、工人等。

    46440
    领券