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 中使用匿名对象,您可以编写更少的代码,并且在一个类中只创建一个对象。更重要的是,您不想编写未使用的代码,并且还可以防止代码在所需范围之外使用。
如果您喜欢阅读这篇文章并且觉得它有用,请给我们点赞,这将激励我们为您提供更多有用的技术资料。