zoukankan      html  css  js  c++  java
  • 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);
                }
            }
        }
    }

           

  • 相关阅读:
    解决Xcode 证书过期问题
    Parallel Desktop 问题汇总
    CMS系统学习笔记
    git pull报错 error: Your local changes to the following files would be overwritten by merge
    Mac安装Homebrew
    使用nvm-windows安装NodeJs遇到的问题: Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt.
    HTB-靶机-Luke
    HTB-靶机-Fortune
    HTB-靶机-Ypuffy
    HTB-靶机-Sunday
  • 原文地址:https://www.cnblogs.com/jiligalaer/p/5381611.html
Copyright © 2011-2022 走看看