成员内部类(实例内部类)

来源:互联网 发布:超级奇门排盘软件 编辑:程序博客网 时间:2024/05/16 07:17

特性:

◆不能有静态成员(字段,方法)
◆内部类对象外部创建语法:outter.new Inner();
◆实例方法访问外部类实例成员:Outter.this.成员

实例1:特性测试

public class MemberInnerClass {    public static void main(String []args){        //创建外部类的对象        Outer1 outer=new Outer1();        //创建内部类的对象        Outer1.Inner1 inner=outer.new Inner1();        inner.innerShow();        outer.outerShow();    }}class Outer1{    private String name="张三";    private int num1=10;    public void outerShow(){        System.out.println(name);        System.out.println(num1);    }    public class Inner1{        private String name="李四";        private int num2=20;        private static final int num3=10;//静态常量在内部类中是可以的        //private static int num3=30;//在成员内部类中不能声明静态的成员,包括属性和方法        public void innerShow(){            System.out.println(name);            //System.out.println(Outer1.this.name);            System.out.println(num2);            outerShow();//成员内部类可以直接访问外部类的属性和方法,包括私有的        }    }}   

实例2:成员内部类间接实现多继承

public class MultiExtendsDemo{    public static void main(String []args){        C c=new C();        c.showA();        c.showB();    }}class A{    public void showA(){        System.out.println("A");    }}class B{    public void showB(){        System.out.println("B");    }}class C {    private class A1 extends A{        public void showA(){            super.showA();        }    }    private class B1 extends B{        public void showB(){            super.showB();        }    }    public void showA(){        new A1().showA();    }    public void showB(){         new B1().showB();    }}
0 0
原创粉丝点击