面向对象06

内部类

 

 

  • Outer

 package java_oop.demo11;
 
 /**
  * @author IT_Jay
  * @date 2022/1/27 18:02
  */
 
 public class Outer {
     private int id=1102;
     public void out(){
         System.out.println("这是一个外部类的方法");
    }
 
     //局部内部类
     public void method(){
         class Inner02{
             public void in(){
 
            }
        }
    }
 
     //内部类
     public class Inner{
         public void in(){
             System.out.println("这是一个内部类的方法");
        }
 
         //内部类获得外部类的私有属性
         public void getID(){
             System.out.println(id);
        }
    }
 
     //静态内部类
     public static class Inner01{
 
    }
 }
 
 //一个Java类可以有多个class类,但只能有一个public class
 class A{
 
 }
  • Application

 package java_oop;
 
 import java_oop.demo05.A;
 import java_oop.demo05.B;
 import java_oop.demo07.Person;
 import java_oop.demo07.Student;
 import java_oop.demo07.Teacher;
 import java_oop.demo11.Outer;
 
 /**
  * @author IT_Jay
  * @date 2022/1/22 18:06
  */
 
 //一个项目应该只存一个main方法
 public class Application {
     public static void main(String[] args) {
         //new
         Outer outer = new Outer();
 
         //通过外部类来实例化内部类
         Outer.Inner inner = outer.new Inner();
         inner.in();
         inner.getID();
    }
 }
  • Test

 package java_oop.demo11;
 
 /**
  * @author IT_Jay
  * @date 2022/1/27 18:27
  */
 
 public class Test {
     public static void main(String[] args) {
 
         //匿名内部类   没有名字初始化类,不用将实例保存到变量中
         new Apple().eat();
 
         new UserService(){
             @Override
             public void hello() {
 
            }
        };
    }
 }
 
 class Apple{
     public void eat(){
 
    }
 }
 
 interface UserService{
     void hello();
 }

 

posted @ 2022-01-27 18:41  作困兽之斗  阅读(29)  评论(0)    收藏  举报