zoukankan      html  css  js  c++  java
  • java内部类

    java内部类 顾名思义定义在内部的类

    java内部类分为四种:

      1.静态内部类(static inner class

      2.成员内部类(member inner class

      3.局部内部类(local inner class

      4.匿名内部类(anonymous inner class

    一、静态内部类

     

     public class Test{
    
        //定义静态内部类
    
         public static class SubTest{
    
            public void method1(){
    
              system.out.print("静态内部类里的方法"); 
    
            }
    
        }
    
        public void test3(){
    
          system.out.print("这是普通的方法");
    
        }
    
      }

        静态内部类特性

      静态内部类可以访问外部类的任一静态字段或静态方法(只能访问的)

      像静态方法一样,静态类有public/private/default 权限修饰符

    二、成员内部类

     

     public class Test{
    
        //定义成员内部类
    
         public static class SubTest{
    
            public void method1(){
    
              system.out.print("成员内部类里的方法"); 
    
            }
    
        }
    
        public void test3(){
    
          system.out.print("这是普通的方法");
    
        }
    
      }
    
      class a{
    
        public static void main(String[] args){
    
          //实例化内部类的方法
    
          Test.SubTest  a = new Test().new SubTest();
    
        }
    
      }

      成员内部类的特性  

       类似于外部类的实例函数,成员类有public/private/default权限修饰符 
      一个成员类实例必然所属一个外部类实例,成员类可访问外部类的任一个实例字段和实例函数。 

    三、局部内部类

     

     public class Zhengshu{
    
        public void sharenzheng(){
    
          system.out.println("杀人证");
    
    
        }
    
      }
    
      public class PliseMan{
    
        public void sharen(){
    
          system.out.print("失误,错杀人了");
    
          //定义一个局部内部类(方法内部类)
    
          Zhengshu zz = new Zengshu();
    
          zz.sharenzheng();
    
          system.out.println("我不用负责!!");
    
        }    
    
      }

      局部内部类的特性  

         局部内部类定义在方法中,比方法的范围还小。是内部类中最少用到的一种类型。

          像局部变量一样,不能被public, protected, private和static修饰。

          只能访问方法中定义的final类型的局部变量。

          局部内部类在方法中定义,所以只能在方法中使用,即只能在方法当中生成局部内部类的实例并且调用其方法。

    四、匿名内部类(重点)

      

    public interface aaaa{
    
        public void do();
    
      }  
    
      public class test{
    
        public static void main(String[] args){
    
          //使用匿名内部类
    
          aaaa  b = new aaaa(){
    
            //实现aaaa接口的方法
    
            public void do(){
    
              system.out.print("doing");
    
            }
    
          };
    
        }
    
      }

      匿名内部类的特性

        匿名类是一种特殊的局部类。局部类的特性与约束都适用与它    

         匿名内部类就是没有名字的局部内部类,不使用关键字class, extends, implements, 没有构造方法。

         匿名内部类隐式地继承了一个父类或者实现了一个接口。

         匿名内部类使用得比较多,通常是作为一个方法参数。

     

  • 相关阅读:
    网络协议
    面向对象三大特性之多态
    面向对象三大特性之封装
    面向对象三大特性之继承
    python面向对象编程
    常用模块之configpaser与shutil
    XML模块
    Python模块之OS,subprocess
    Python日志(logging)模块,shelve,sys模块
    Linux 配置 Nginx
  • 原文地址:https://www.cnblogs.com/nyzxh/p/6071301.html
Copyright © 2011-2022 走看看