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

    内部类的访问规则:

    1,内部类可以直接访问外部类中的成员,包括私有。

    2,外面类要访问内部类,必须建立内部类对象。

    public class Outer {
        private int x=3;
        
        class Inner{
            void function(){
                System.out.println("inner"+x);
            }
        }
        
        void method(){
            Inner in=new Inner();
            in.function();
        }
    }

     测试类:

    public class Test {
    
        public static void main(String[] args) {
            //直接访问内部类中的成员
            Outer.Inner in=new Outer().new Inner();
            in.function();
        }
    
    }

    当内部类定义在外部类的成员位置上,而且非私有,可以在外部其它类中可以直接建立内部类对象

    格式

      外部类名.内部类名 变量晚=外部类对象.内部类对象

        Outer.Inner in=new Outer().new Inner();

    public class Outer {
        private int x=3;
        
        class Inner{
            void function(){
                System.out.println("inner"+x);
            }
        }
    
    
    publiic class Test(){
      public static void main(String[] args){
       Outer.Inner in=new Outer().new Inner();
       in.function();
    
        }
    
    }


    当内部类在成员位置上,就可以被成员修饰符所修饰

    比如:private:将内部类在外部类中进行封装

         static:内部类就具备static的特性。

       当内部类被static修饰后,只能直接访问外部类中的static成员,出现了访问局限性

        在外部其它类中,如何直接访问static内部类的非静态成员呢?

        new.Outer.Inner().function();

        

        在外部其它类中,如何直接访问static内部类的静态成员呢?

        Outer.Inner.function();

            //注意

      当内部类中定义了静态成员,该内部类必须是static的

      当外部类中的静态方法访问内部在时,内部类也必须是static的。

  • 相关阅读:
    jsfl学习
    反射的小例子
    Tsql 递归构造连续日期序列
    无法远程链接sqlserver的解决办法
    ubuntu下安装中文输入法ibus
    vs2008设置为这个背景色
    由于登陆失败而无法启动服务mssqlserver无法启动的问题
    配置solr
    笔记本无法检测到无线信号的终极解决方案
    win7 asp.net 配置iis
  • 原文地址:https://www.cnblogs.com/zk753159/p/4992814.html
Copyright © 2011-2022 走看看