【宋红康学习日记19】类的成员之五---内部类(inner class)

1 内部类即在类中再定义类,分为外部类和内部类,内部类又分为成员内部类(外部内,方法外)和局部内部类(方法中的类)。

2 成员内部类:可有修饰符(default,private,protected,public );

                    可用static final abstract修饰;

                   可调用外部类属性方法。

   (1)如何创建成员内部类对象

         1)创建静态内部类对象,可通过外部类直接调用静态内部类构造器

             Person.Dog s=new Person.Dog();

        2)创建非静态内部类的对象,要先创建外部类对象,通过外部类对象调用内部类构造器;

              Person p=new Person();

             Person.Bird b=p.new Bird();

    3  局部内部类:

     方式一:

       (1)创建一个实现实现接口的类  class Camera implements Product{}

         (2)返回一个实现类对象: return new Camera();

              

    //局部内部类的使用
    public Product getProduct(){
        //方式一:实现Product接口的类的对象,
        class Camera implements Product{
            @Override
            public void getName() {
                // TODO Auto-generated method stub
                System.out.println("数码相机");
            }
            @Override
            public void getPrice() {
                // TODO Auto-generated method stub
                System.out.println("¥6798");
            }            
        }
        return new Camera();

方式二:
直接返回重写:
return new Product(){....重写....}




接上
//方式二:实现Product接口的匿名局部内部类
        return new Product(){
            @Override
            public void getName() {
                // TODO Auto-generated method stub
                System.out.println("电子书");
            }
            @Override
            public void getPrice() {
                // TODO Auto-generated method stub
                System.out.println("¥899");
            }
            
        };












原文地址:https://www.cnblogs.com/noaman/p/4990044.html