Day06_32_Java各种内部类

内部类

  • 内部类都有哪些?

    • 成员内部类

    • 匿名内部类

    • 静态内部类

    • 局部内部类

  • 成员内部类

     - 成员内部类内部不能有静态声明(静态方法和静态变量)
    
     - 成员内部类可以访问外部类中所有的数据包括静态数据和实例
    
    • 语法

      // 外部类
      public class Outer {   
             
            // 外部类变量
            private int id=10;
      
            // 外部类方法
            public void out(){
                System.out.println("外部类方法");
            }
      
      
              // 成员内部类
               public class Inner{
      
               // 内部类方法
                public  void  in(){
                    System.out.println("内部类方法");
                }
               
               // 内部类获取外部类变量(id)
                public void getId(){
                      System.out.println(id);
                 }
           }
      

    }

    • 创建成员内部类对象

       // 创建成员内部类对象
          Outer.Inner inner=outer.new Inner();
      
      // 调用内部类方法
          inner.in();
          inner.getId();
      
  • 静态内部类

    • 静态内部类可以等于看做内部变量

    • 可以用访问修控制权限符修饰

    • 内部类重要的作用:可以访问外部类中私有的数据。

    • 静态内部类可以直接访问外部类中的静态数据,无法直接访问成员数据

  • 静态内部类的定义

  public class statiinclass {
  
      //静态方法
  public static void mian(String []args) {
 	 innerClass.m3();
  }
  
  //静态变量
 private static String s1="A";
  
  //成员变量
  private String s2="B";
   
  //静态方法
  private static void m1() {
      System.out.println("static's m1 method execute!");
  }

  //成员方法
 private void m2() {
 	 System.out.println("m2 method execute!");
  }
 


       //静态内部类
      //可以用访问修控制权限符修饰
     //内部类重要的作用:可以访问外部类中私有的数据。
    //静态内部类可以直接访问外部类中的静态数据,无法就直接访问成员数据
 	 
   static class innerClass{

 	 //静态方法
 	 public static void m3() {
 		 System.out.println(s1);
 		 statiinclass.m1();
 	 }

 	 
 	 //成员方法
 	 public void m4() {

 	     System.out.println();
 	 }
     }
    }




* 局部内部类

      - 局部内部类等同于局部变量

      - 局部内部类中不能有静态声明(静态方法和静态变量)

      - 局部内部类在访问局部变量的时候,该局部变量必须使用final关键字修饰

      - 局部内部类需要在局部内部类中创建对象,引用内部类中的方法,然后在主方法中调用包含内部类的方法就实现了依次执行




*  匿名内部类

    - 指的是类没有名字,没有名字的类。

    - 匿名内部类的优点是少定义一个类、缺点是无法重复使用。
posted @ 2021-03-30 17:11  失昼  阅读(66)  评论(0)    收藏  举报