有时我们创建某个对象时,需要使用某个类的内部类创建的对象,这时内部类为静态内部类和非静态内部类时创建的方法是不同的;当内部类为非静态类时,要在main函数中创建内部类对象,首先main函数得在外部类中,然后调用: 内部类 内部类对象名=外部类对象.new 内部类() 的方法在main函数中创建一个内部类对象。:
class HelloWorld{
//外部类的私有属性name
private String name = "hello world";
//成员内部类Inner
public class Inner {
String name = "hello java";
//内部类中的方法
public void show() {
System.out.println("外部类中的name:" +HelloWorld.this.name );
System.out.println("内部类中的name:" + name );
}
}
//测试成员内部类
public static void main(String[] args) {
//创建外部类的对象
HelloWorld hello = new HelloWorld ();
//创建内部类的对象
Inner inn =hello.new Inner(); //内部类为非静态类 内部类 内部类对象名=外部类对象.new 内部类()
//调用内部类对象的show方法
inn.show();
}
}
当内部类为静态类时,此时在main函数中创建内部类的方法为:外部类.内部类 内部类对象 =new 外部类.内部类() 的方法创建一个内部类对象,此时main函数的位置没有要求。
class HelloWorld{
//成员内部类Inner
public static class Inner {
String name = "hello java";
//内部类中的方法
public void show() {
System.out.println("内部类中的name:" + name );
}
}
}
public class Main{
//测试成员内部类
public static void main(String[] args) {
//创建内部类的对象
HelloWorld.Inner inn =new HelloWorld.Inner(); //内部类为静态类 外部类.内部类 内部类对象 =new 外部类.内部类()
//调用内部类对象的show方法
inn.show();
}
}