美文网首页Java
2019-03-08 Java Inner 01

2019-03-08 Java Inner 01

作者: yangsunior | 来源:发表于2019-03-08 19:23 被阅读0次

内部类的访问特点

  • 内部类可以直接访问外部类中的成员。
  • 外部类要访问内部类,必须建立内部类的对象。
class Outer
{
    private static int num = 31;

    class Inner// 内部类。
    {
        void show()
        {
            System.out.println("show run..."+num);
        }
    }
    
    public void method()
    {
        Inner in = new Inner();
        in.show();
    }
}
  • 1. demo 1
class InnerClassDemo
{
    public static void main(String[] args) 
    {
        Outer out = new Outer();
        out.method();
    }
}

OUTPUT:

show run...31
  • 2. demo 2
class InnerClassDemo
{
    public static void main(String[] args) 
    {
        Outer.Inner in =  new Outer().new Inner();
        in.show();
    }
}

OUTPUT:

show run...31

注: 这种写法目前不是很明白,以后再议。

  • 3. demo 3
    如果内部类是静态的。 相当于一个外部类
class Outer
{
    private static int num = 31;

    static class Inner// 内部类。
    {
        void show()
        {
            System.out.println("show run..."+num);
        }
    }
    
    public void method()
    {
        Inner in = new Inner();
        in.show();
    }
}

class InnerClassDemo
{
    public static void main(String[] args) 
    {
        Outer.Inner in =  new Outer.Inner();
        in.show();
    }
}

OUTPUT:

show run...31
  • 4. demo 4
class Outer
{
    private static int num = 31;

    static class Inner// 内部类。
    {
        static void function()//如果内部类中定义了静态成员,该内部类也必须是静态的。
        {
            System.out.println("function run ...."+num);
        }
    }
}

class InnerClassDemo
{
    public static void main(String[] args) 
    {
        //如果内部类是静态的,成员是静态的。
        Outer.Inner.function();
    }
}

OUTPUT:

function run ....31

何时用到内部类?

  1. 一把用于类的设计。

  2. 分析事物时发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容。
    这时就是还有的事物定义成内部类来描述。

相关文章

网友评论

    本文标题:2019-03-08 Java Inner 01

    本文链接:https://www.haomeiwen.com/subject/dbsdpqtx.html