内部类

作者: 鉴闻俗说 | 来源:发表于2017-12-11 21:15 被阅读0次

一 、内部类

内部类共分为四种:静态内部类,成员内部类,局部内部类,以及匿名内部类。

1、静态内部类:只能访问外部类的静态成员变量或者静态方法,生成静态内部类的方法如下:

OuterClass.InnerClass inner = new OuterClass.InnerClass();

2 、成员内部类:既可以访问外部类的静态成员变量或方法,也可以访问非静态成员变量或方法。生成成员内部类的方法如下:

OuterClass.InnerClass inner = ( new OuterClass() ). new InnerClass();

若想在成员内部类中访问外部类的成员变量,语法为OuterClass.this.a.

3、局部内部类:定义在方法当中,可以访问外部类的静态与非静态的方法与成员变量,但是只能访问方法中声明为final的成员变量。

4、匿名内部类:匿名内部类会隐式的继承一个父类或者实现一个接口。

二、 分别给出对应的Demo

1、静态内部类

/**
 * 静态内部类
 *
 */
class StaticInner
{
    private static int a = 4;
    
    //静态内部类
    public static class Inner
    {
        public void method()
        {
            System.out.println(a);
        }
    }
}

public class StaticInnerClassTest
{
    public static void main(String[] args)
    {
        //新建一个静态内部类的对象
        StaticInner.Inner inner = new StaticInner.Inner();
        inner.method();
    }
}

2、成员内部类

/**
 *成员内部类
 *
 */
class MemberInner
{
    private String str = "hello";
    
    //成员内部类
    public class Inner
    {
        private String str = "hhhhh";
        public void method()
        {
            //访问外部类的成员变量
            System.out.println(MemberInner.this.str);
        }
    }
}

public class MemberInnerClass
{
    public static void main(String[] args)
    {
        //新建一个成员内部类的对象
        MemberInner.Inner inner = (new MemberInner()).new Inner();
        inner.method();
    }
}

3、局部内部类

/**
 * 局部内部类
 *
 */
class LocalInner
{   
    public static void name()
    {
        
    }
    public void method()
    {
        final String str = "hhh";
        //局部内部类
        class Inner
        {
            public void output()
            {
                System.out.println(str);
            }
            
        }
        //生成局部内部类的对象,并调用其方法
        (new Inner()).output();;
    }
}
public class LocalInnerClass
{
    public static void main(String[] args)
    {
        LocalInner localInner = new LocalInner();
        localInner.method();
    }
}

4、匿名内部类

public class AnonumousInnerClass
{
    @SuppressWarnings("deprecation")
    public String getDate(Date date)
    {
        return date.toLocaleString();
    }
    
    @SuppressWarnings("serial")
    public static void main(String[] args)
    {
        AnonumousInnerClass test = new AnonumousInnerClass();
        
        String str = test.getDate(new Date()
        //匿名内部类会隐式的继承一个父类或者一个接口,此处的匿名内部类继承了Date类,
        //并重写了toLocaleString()方法
        {
            @Override
            public String toLocaleString()
            {
                return "hello world";
            }
        });
        
        System.out.println(str);
    }
}

上一篇:观察者模式(Observer)
下一篇:io——File类

相关文章

  • 内部类

    成员内部类 局部内部类(定义在方法内和定义在作用域内的类) 匿名内部类

  • Java 内部类

    内部类包括成员内部类、方法内部类、*静态内部类、匿名内部类*。 内部类的作用 由于内部类的实现和外部类没有关系,内...

  • Java学习——内部类

    内部类 一,成员内部类(包括静态内部类和非静态内部类) 非静态内部类可以直接访问外部类的成员,反之则不行 非静态内...

  • Java 内部类、静态内部类、方法内部类(未完待续)

    内部类 什么是内部类?内部类其实就是在一个类中创建的类。内部类有四种: 成员内部类 静态内部类 局部内部类 匿名内...

  • java 内部类

    一般有四种内部类的使用方式: 嵌套的内部类 方法内的内部类 静态内部类 匿名内部类 什么时候用内部类: 有时候明显...

  • 内部类

    内部类 1.可以访问访问其外部类所有属性和方法,无需创建外部类对象 2.必须创建内部类对象,否则无法从外部类访问内...

  • Java 中的方法内部类

    Java 中的方法内部类 方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内...

  • java——内部类

    内部类 定义: 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内...

  • java之面向对象5

    方法内部类: 简而言之就是定义在外部类的方法内的类。 方法内部类只在该方法的内部可见,即只在该方法内可以使用。 方...

  • Java 内部类

    1. 内部类 概念:在一个类的内部再定义一个完整的类内部类分为 4 类:成员内部类、静态内部类、局部内部类、匿名内...

网友评论

      本文标题:内部类

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