java(13)内部类

内部类就是定义在类内部的类,可以使java具备为普通类实现多重继承的能力。

非静态内部类,局部内部类,静态内部类,匿名内部类

非静态内部类:

package 内部类;


class Wai5
{
    int i = 8;
    class Nei
    {
        int i = 9;
        public void myVoid()
        {
            System.out.println("内部类的成员变量值为:"+this.i);
            System.out.println("外部类的成员变量值为:"+Wai5.this.i);
        }
    }
}

public class NeiBuLei5 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Wai5 w = new Wai5();
        Wai5.Nei wn2 = w.new Nei();
        wn2.myVoid();
    }

}

局部内部类:

package 内部类;

class WaiBu
{
	public void myVoid()
	{
		final int i=9;
		class Nei
		{
			public void myNeiVoid()
			{
				System.out.println("外部类的局部变量值:"+i);
			}
		}
		Nei n = new Nei();
		n.myNeiVoid();
	}
}

public class JuBuLei {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		WaiBu w = new WaiBu();
		w.myVoid();
	}

}

  静态内部类:

package 内部类;
class WaiBu1
{
	static class NeiBU
	{
		int i = 1;
	}
	
	public void myVoid()
	{
		NeiBU n = new NeiBU();
		int ii = n.i;
		System.out.println("静态内部类的变量值为:" +ii);
	}
}
public class 静态局部类 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		WaiBu1 w = new WaiBu1();
		w.myVoid();
	}

}

  匿名内部类:

package 内部类;

class NeiFather
{
    int i;
    public void myVoid()
    {
        System.out.println("这是内部类的父类方法");
    }
}

public class NiMing {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        NeiFather nf = new NeiFather()
        {
            {
                i=9;
            }
            
            public void myVoid()
            {
                System.out.println("匿名内部类成员变量的值为: "+i);
                
            }
        };
        nf.myVoid();
        }

}
原文地址:https://www.cnblogs.com/yanmantianxia/p/5471694.html