内部类

内部类

内部类就是在一个类的内部再定义一个类。比如:A类中定义了一个B类,那么B类相对于A类来说就称为内部类,而A 类就是B类的外部类了。

  1. 成员内部类。

    package oop.demo01.demo10;
    
    public class Outer {
        private  int id=10;
        public void out(){
            System.out.println("这是外部类的方法");
        }
       public class Inner{
            public void in(){
                System.out.println("这是内部类方法");
            }
            //获得外部类的私有属性
           public void getID(){
               System.out.println(id);
           }
    
        }
    }
    
    package oop.demo01.demo10;
    
    public class Application {
        public static void main(String[] args) {
            //外部类通过new实现
            Outer outer=new Outer();
            //通过这个外部类来实例化内部类
            Outer.Inner inner=outer.new Inner();
            inner.in();
        }
    }
    
  2. 静态内部类。

    package oop.demo01.demo10;
    
    public class Outer {
        private  int id;
        public void out(){
            System.out.println("这是外部类的方法");
        }
       public static class  Inner{
            public void in(){
                System.out.println("这是内部类方法");
            }
    
        }
    }
    
    package oop.demo01.demo10;
    
    public class Application {
        public static void main(String[] args) {
            //外部类通过new实现
            Outer outer=new Outer();
    
        }
    }
    
  3. 局部内部类。

    一个java类中可以有多个class类,但只能由一个public class类。

    package oop.demo01.demo10;
    
    public class Outer {
       //局部内部类
        public void method(){
            class Inner{
                public void in(){
                    
                }
            }
        }
    }
    
  4. 匿名内部类。

package oop.demo01.demo10;

import oop.demo01.deno09.UserService;

public class Test {
    public static void main(String[] args) {
      //  Apple apple = new Apple();//实例化类
        //没有名字初始化类;不用将实例保存到变量中。
        new Apple().eat();    
    }
}
class Apple{
    public void eat(){
        System.out.println("1");
    }
}
posted @ 2023-05-20 15:22  努力的小L  阅读(15)  评论(0)    收藏  举报