成员内部类私有使用

class  Demo1_InnerClass
{
	public static void main(String[] args) 
	{
		Outer.Inner oi =  new Outer.Inner();
		oi.method();
		Outer.Inner2.print();
	}
}
class Outer
{
	static class Inner
	{
		public void method(){
		      System.out.println("method");
		}
	}
	static class Inner2
	{
		public static void print(){
		System.out.println("print");
		}
	}
}

  这次代码定义了两个私有内部类,但是内部类的成员方法不同,一个静态一个非静态。所以对于方法的调用方式有所不同。思路分析如下:
1>内部类首先可以理解为外部类的方法,对外部类静态方法的调用可以直接类名.调用,而这个方法又是个内部类,内部类里自己的成员方法非静态需要创建对象调用,所以代码左侧与常用的创建对象格式相同即外部类名.内部类名.对象名,而右侧因为内部类为静态所以直接外部类名.new 内部类名()创建,有根据编写习惯所以右侧new关键字提前写成new 外部类名.内部类名();创建对象,然后用对象.方法名调用,也就是Outer.Inner oi =new Outer.Inner();oi.method;

2>第二个内部私有类中定义的成员方法为静态成员方法,对于静态类的静态成员方法可以直接用类名.调用,所以调用语句为Outer.Inner.print();
注意点总结:

    其实这些调用都是在如何调用内部类的方法的基础上的演变,记住最原始的对内部类创建对象的格式:                      
                        外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
就可再根据静态非静态灵活演变

你可能感兴趣的:(成员内部类私有使用)