黑马程序员技术交流社区

标题: 内部类的各种使用演示 [打印本页]

作者: God’s favoure    时间: 2014-10-30 21:57
标题: 内部类的各种使用演示
/*注释:本程序演示各种内部类的书写方法,调用方法.*/

class Outer{
        class Inter{
                public void medo(){
                        System.out.println("内部类和内部类里面的方法都非静态.");
                }
        }
}
class Outer1{
        static class Inter1{
                public static void medo1(){
                        System.out.println("内部类和内部类里面的方法都是静态的.");
                }
        }
}
class Outer2{
        static class Inter2{
                public void medo2(){
                        System.out.println("内部类是静态的,内部类里面的方法都是非静态的.");
                }
        }
}
//局部位置内部类定义在方法中
class Outer3{
        public void function(){
                class Inter3{
                        public void show(){
                                System.out.println("局部位置内部类定义在方法中");
                        }
                }
                new Inter3().show();
        }
}
//匿名内部类
interface A{
        public abstract void show();
}
class Outer4{
        public void function(){
                //将实现类,重写方法,调用一步完成
                new A(){//匿名内部类,或称为接口的实现类对象
                        public void show(){
                                System.out.println("匿名匿名内部类");
                        }
                }.show();
        }
}
//接口实现多个匿名内部类
interface B{
        public abstract void show();
        public abstract void show2();
}
class Outer5{
        public void function(){
        B b =new B(){
                        public void show(){
                                System.out.println("多个接口匿名匿名内部类");
                        }
                        public void show2(){
                                System.out.println("多个接口匿名匿名内部类");
                        }
                };
                b.show();
                b.show();
        }
}
public class InsideType {
        public static void main(String[] args) {
                Outer.Inter otit = new Outer().new Inter();
                otit.medo();
                System.out.println("----------第一种实现方法打印完成---------");
                Outer1.Inter1.medo1();
                System.out.println("----------第二种实现方法打印完成---------");
                Outer2.Inter2 ouit2 = new Outer2.Inter2();
                ouit2.medo2();
                System.out.println("----------第三种实现方法打印完成---------");
                new Outer3().function();
                System.out.println("----------局部位置内部类定义在方法中打印完成---------");
                new Outer4().function();
                System.out.println("----------匿名内部类实现方法打印完成---------");
                new Outer5().function();
                System.out.println("----------打印完成---------");
        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2