内部类的使用:

1、在外部类中使用非静态内部类:

public class OutClass{
	private class InClass{
		public void info(){
			System.out.println("内部类的方法!");
		}
	}

	//-外部类中调用非静态内部类方法,先创建实例
	public void doInClass(){
		InClass Ic=new InClass();
		Ic.info();
	}

	public static void main(String[] args){
		OutClass Oc=new OutClass();
		Oc.doInClass();

		//-静态方法中直接调用非静态内部类方法:
		OutClass.InClass Ic;
		OutClass Ocl=new OutClass();
		Ic=Ocl.new InClass();
		Ic.info();

		//-把上面的代码可以简写
		OutClass.InClass Icl=new OutClass().new InClass();
		Icl.info();
	}
}

运行结果:

 2、外部类以外使用非静态内部类:

class Out{
	//-定义一个非静态内部类,省略修饰符,说明只能在包范围以内调用该类
	class In{
		public void pri(){
			System.out.println("这是非静态内部类中的方法");
		}
	}
}

public class OutInClass{
	public static void main(String[] args){
		//-外部类以外 调用内部类的方法
		Out.In oi=new Out().new In();
		oi.pri();
	}
}

 运行结果:

3、外部类以外使用静态内部类:

class Out{
	//-创建静态内部类,省略修饰符,包内可访问
	static class In{
		public void info(){
			System.out.println("静态内部类方法!");
		}
	}
}

public class OutInStaticClass{
	public static void main(String[] args){
		//-创建静态内部类的实例对象
		Out.In oi=new Out.In();
		oi.info();
	}
}

 运行结果:

原文地址:https://www.cnblogs.com/baby-zhude/p/8321296.html