21xrx.com
2024-12-23 01:42:37 Monday
登录
文章检索 我的文章 写文章
Java中如何实例化内部类
2023-06-12 12:57:56 深夜i     --     --
Java 内部类 实例化

在Java中,内部类是一个非常有用的特性。内部类可以访问外部类的私有成员和方法,而不需要使用公共的访问方法。但是,内部类的实例化可能会有些棘手。本文将会探讨Java中如何实例化内部类的方法,并提供示例代码和解释。

一、非静态内部类的实例化

在Java中,有两种类型的内部类,其中之一是非静态内部类。在实例化一个非静态内部类时,需要使用外部类的实例来创建新的内部类实例。以下是一个示例,演示了如何实例化非静态内部类:


public class OuterClass {

 private int x = 10;

 public class InnerClass {

  public int myInnerMethod()

   return x;

  

 }

}

public class Main {

 public static void main(String[] args) {

  OuterClass myOuter = new OuterClass();

  OuterClass.InnerClass myInner = myOuter.new InnerClass();

  System.out.println(myInner.myInnerMethod());

 }

}

代码简介:

- OuterClass类有一个非静态内部类InnerClass。

- InnerClass类有一个方法myInnerMethod(),它返回OuterClass类的私有成员x的值。

- Main类的main()方法实例化一个OuterClass对象myOuter,并使用它来创建一个InnerClass对象myInner。最后,Main类使用myInner调用myInnerMethod()方法,并将结果输出到控制台上。

二、静态内部类的实例化

另一种Java内部类是静态内部类。静态内部类不需要外部类实例的引用来创建新的内部类实例。以下是一个示例,演示了如何实例化静态内部类:


public class OuterClass {

 int x = 10;

 public static class InnerClass

  int y = 5;

 

}

public class Main {

 public static void main(String[] args) {

  OuterClass.InnerClass myInner = new OuterClass.InnerClass();

  System.out.println(myInner.y);

 }

}

代码简介:

- OuterClass类有一个静态内部类InnerClass。

- InnerClass类有一个成员变量y,该变量的默认值为5。

- Main类的main()方法实例化一个InnerClass对象myInner,并使用它输出y的值。

三、匿名内部类的实例化

在某些情况下,我们需要在程序中使用一次性的内部类,这时就可以使用匿名内部类。匿名内部类没有类名,因此无法实例化。要实例化匿名内部类,我们必须使用它所实现的接口或继承的类的名称来命名它。以下是一个示例,演示如何实例化匿名内部类:


public class Main {

 interface Greeting {

  void sayHello();

 }

 public static void main(String[] args) {

  Greeting greeting = new Greeting() {

   @Override

   public void sayHello() {

    System.out.println("Hello World!");

   }

  };

  

  greeting.sayHello();

 }

}

代码简介:

- Main类中定义了一个接口Greeting,并有一个方法sayHello()。

- main()方法使用一个匿名内部类实现Greeting接口,并重写了sayHello()方法。

- main()方法实例化匿名内部类,并将它赋值给greeting变量。最后,main()方法调用greeting的sayHello()方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复