• java基础随笔-内部类


           今天来复习下内部类的一些基础知识。

              首先是内部类的分类:

                           1、成员内部类

                           2、静态内部类

                           3、匿名内部类

                           4、局部内部类

              下面逐一来介绍下。

                          首先是成员内部类,就是将内部类作为一个成员变量来处理。具体例子如下:

    public class ChengYuanInnerClass {
    
         private int num=3;
         
         class InnerClass{
             
             private int num=4;
             
             public void test(){
                 int num =5;
                 System.out.println("test.num="+num);
                 System.out.println("innerclass.num="+this.num);
                 System.out.println("ChengYuanInnerClass.num="+ChengYuanInnerClass.this.num);
             }
         }
         
         public static void main(String[] args) {
            ChengYuanInnerClass.InnerClass innerClass = new ChengYuanInnerClass().new InnerClass();
            innerClass.test();
        }
    }

    结果:

    test.num=5
    innerclass.num=4
    ChengYuanInnerClass.num=3

                              静态内部类是指作为一个静态类放置在某个类内部。

    public class StaticInnerClass {
    
         private static int num =3;
         
         static class InnerClass{
             private static int num =4;
             
             public static void test(){
                int num = 5;
                 System.out.println("test.num="+num);
                 System.out.println("innerClass.num="+InnerClass.num);
                 System.out.println("StaticInnerClass.num="+StaticInnerClass.num);
                 //static是在类还没有调用构造参数实例化类之前就已经被执行,所以this这个是不正确的。
             }
         }
         
         public static void main(String[] args) {
             StaticInnerClass.InnerClass.test();
        }
    }

    结果:

    test.num=5
    innerClass.num=4
    StaticInnerClass.num=3

                   3、匿名内部类:是针对某个接口只有一个方法时,我们为了方面代码的编写,直接new该接口实现其内部的这个唯一方法。

    public class NiMingInnerClass {
    
         public static void main(String[] args) {
            String[] fileNames = new File("/Users/test").list(new FilenameFilter() {
                
                @Override
                public boolean accept(File dir, String name) {
                    return name.endsWith("txt");
                }
            });
            if(null!= fileNames && fileNames.length!=0){
                for(String filename : fileNames){
                    System.out.println(filename);
                }
            }
        }
    }

           

  • 相关阅读:
    原生js实现基本选择器
    javascript数组
    web中关于隐藏与显示
    CSS3 box-shadow(阴影使用)
    java中文件的I/O操作
    组件RecyclerView的应用(一)
    Android客户端与Eclipse服务器端的Socket通信
    C语言关于利用sscanf实现字符串相加减
    TabLayout和ViewPager简单实现页卡的滑动
    DrawerLayout的openDrawer()和closeDrawer()方法
  • 原文地址:https://www.cnblogs.com/jiligalaer/p/5381611.html
Copyright © 2020-2023  润新知