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

    内部类,一个被称为静态嵌套类,一个被称为内部类。
    从字面的角度解释是这样的:
    什么是嵌套?嵌套就是我跟你没关系,自己可以完全独立存在,但是我就想借你的壳用一下,来隐藏一下我自己,,不想被其他类依赖。
    什么是内部?内部就是我是你的一部分,我了解你,我知道你的全部,没有你就没有我。(所以内部类对象是以外部类对象存在为前提的)

    静态内部类的实例不需要先实例化外部类成员,可直接实例化。

    ①静态内部类中可以有非静态的方法

    ②当内部类中有静态方法或者静态成员变量时,一定是静态内部类

    public class Outerclass {
      static class Inner{
        private void innerVoidMethod(){//静态内部类中可以有非静态的方法
          Outerclass.outerStaticMethod();//静态内部类可以访问外部类的静态成员和方法
          new Outerclass().outerVoidMethod();
          //Outerclass().outerVoidMethod();//error, 静态内部类不可以直接访问外部类的非静态成员和方法
        }
        private static void innerStaticMethod(){
          Outerclass.outerStaticMethod();//静态内部类可以访问外部类的静态成员和方法
          //Outerclass().outerVoidMethod();//error, 静态内部类不可以直接访问外部类的非静态成员和方法
        }
      }
    
       /*class Inner2{  //error,当内部类中有静态方法或者静态成员变量时,一定是静态内部类
        private static void inner2StaticMethod(){
        }
      }*/
    
      private void outerVoidMethod(){
        System.out.println("outerVoidMethod");
      }
      private static void outerStaticMethod(){
        System.out.println("outerStaticMethod");
      }
      public static void main(String[] args) {
        new Inner().innerVoidMethod();//静态内部类的实例不需要先实例化外部类成员,可直接实例化
        Inner.innerStaticMethod();
      }
    }

    outerStaticMethod
    outerVoidMethod
    outerStaticMethod
    outerVoidMethod

  • 相关阅读:
    2020牛客多校第二场A.All with Pairs hash+kmp
    2020杭电多校第三场
    2020牛客多校第六场K.K-Bag (思维?)
    2020牛客多校第六场 G.Grid Coloring 构造
    2020杭电多校第一场
    2020牛客暑期多校训练营(第三场)D.Points Construction Problem 构造
    ACM模板_axiomofchoice
    关于deque的行为分析
    Codeforces Round #665 (Div. 2) 题解 (CDEF)
    Codeforces Global Round 10 题解 (DEF)
  • 原文地址:https://www.cnblogs.com/tonggc1668/p/8010857.html
Copyright © 2011-2022 走看看