Java中的匿名对象


Java 中的匿名对象意味着**在没有任何引用变量的情况下创建对象**。通常,在 Java 中创建对象时,需要为该对象分配一个名称。但是,Java 中的匿名对象允许您在没有为该对象分配任何名称的情况下创建对象。

因此,如果您只想在一个类中创建一个对象,那么匿名对象将是一个不错的方法。阅读本文,您将了解什么是匿名对象以及如何在 Java 中创建和使用匿名对象。

让我们开始吧!

Java 中的匿名对象

匿名意味着**无名**。匿名对象基本上是一个已创建但没有名称的值。

由于它们没有名称,因此除了创建它们的点之外,没有其他方法可以引用它们。因此,它们具有**“表达式作用域”**,这意味着它们是在单个表达式内创建、评估和销毁的。

但是,当您希望在程序中不创建超过一个对象时,匿名对象被认为是有用的。

以下是 Java 中创建匿名对象的语法。

语法

new Class_name();

示例

new Student();

以下是如何将参数传递给构造函数:

new Student(“Jose”);

如果您希望通过匿名对象调用方法,代码的编写方式如下:

new Student().display();

这是一种将参数传递给调用方法的方式:

new Student().display(“Jose”, 15);

这是一个说明上述概念的程序:

public class Addition { // Declaring the instance variables. int a; int b; int c; int d; // Declaring the parameterize constructor and initializing the parameters. Addition(int p, int q) { a = p; b = q; int ab = a + b; System.out.println("Addition of a and b:" +ab); } // Declaring an instance method and initializing parameters. void addition(int x, int y ) { c = x; d = y; int cd = c + d; System.out.println("addition of c and d:" +cd); } public static void main(String[] args) { // Creating an anonymous object and passing the values to the constructor and calling method. new Addition(2,2).addition(1, 5); // We are also allowed to pass the different values with the same anonymous object. // but we should not create another new anonymous object. new Addition(4,10).addition(5, 15); } }

输出

Addition of a and b: 4
Addition of c and d: 6
Addition of a and b: 14
Addition of c and d: 20

示例

这是另一个程序,我们将创建一个匿名对象,并通过向构造函数和方法传递不同的值来计算正方形的面积和周长。

package anonymousObject; public class Calculation { // Declare instance variable. int a; // Declaration of one parameter constructor. Calculation(int p) { a = p; } // Declaration of instance methods. void area() { int area = a * a; System.out.println("Area of square: " +area); } void perimeter(int b) { int peri = 4 * b; System.out.println("Perimeter of square: " +peri); } public static void main(String[] args) { // Create an anonymous object. new Calculation(50).area(); new Calculation(10).perimeter(100); new Calculation(20).area(); new Calculation(30).perimeter(200); } }

输出

Area of square: 2500
Perimeter of square: 400
Area of square: 400
Perimeter of square: 800

如何在 Java 中创建和使用匿名对象?

以下程序演示了如何使用匿名对象调用它们的方法:

class Person { void call(String name) { System.out.println("Hello, " + name + "!"); } int sum(int x, int y) { return x + y; } } new Person().call("Jose"); // Hello, Jose! int calculation = new Person().sum(7, 31); System.out.println(calculation); // 38

由于 Java 10,您可以在实例化期间创建和保存匿名对象,方法是使用 var 关键字存储实例。

在下面的程序中,您可以看到如何创建一个新对象并从 myObj 引用变量引用它:

boolean result = true; var myObj = new Object() { void greetings() { System.out.println("Hello World!"); } boolean success = result; }; System.out.println(myObj.success); // true myObj.greetings(); // Hello World!

根据周围的环境,Java 10 中的 var 关键字将推断变量的类型。

在 new Object() 主体内部,您还可以定义对象实例将持有的变量和方法。接下来,您可以像普通对象一样简单地调用和使用实例变量和方法。

总结

通过以上讨论,我们希望您现在已经充分了解了 Java 中的匿名对象是什么以及如何创建和使用它们。此外,您还将了解到,通过在 Java 中使用匿名对象,您可以编写更少的代码并在一个类中只创建一个对象。更重要的是,您不希望编写未使用的代码,并且您还可以防止代码在所需作用域之外使用。

如果您喜欢阅读本文并发现它有用,请给我们竖起大拇指,这将激励我们为您提供更多有用的技术内容。

更新于:2022年8月25日

13K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.