美文网首页
Java学习——内部类

Java学习——内部类

作者: 啦咔_e297 | 来源:发表于2019-10-04 18:39 被阅读0次

内部类

一,成员内部类(包括静态内部类和非静态内部类)
  • 非静态内部类可以直接访问外部类的成员,反之则不行
  • 非静态内部类不能有静态方法、静态代码块、静态初始化块
  • 外部类的静态方法、静态代码块不能访问非静态内部类,包括不能使用非静态内部类定义变量、创建实例
  • Outer.Inner inner =new Outer().new Inner();在创建内部类对象时先创建外部类对象,依托外部类
  • 成员访问要点
    1.Outer.this.age 访问外部类属性
    2.this.age 访问内部类属性
    3.age 访问内部类的局部变量
package com.oop;

/*
 * 测试非静态内部类
 * */
 
public class TestInnerClass {
    public static void main(String[] args) {
        Outer.Inner inner =new Outer().new Inner();
        inner.show();
    }

}

class Outer{
    private int age=10;
    public void testOuter(){
        System.out.println("Outer.testOuter()");
    }
    
    class Inner{ //成员内部类(加static就变为静态内部类,不加则是非静态内部类)
        //可以直接访问外部类的方法,为外部类提供帮助的
        int age=20;
        public void show(){
            int age=30;
            System.out.println("外部类的成员变量"+Outer.this.age);
            System.out.println("内部类的成员变量"+this.age);
            System.out.println("局部变量"+age);
        }
    }
}
静态内部类
package com.oop;
/*
 * 测试静态内部类
 */
public class TestStaticInnerClass {
    private void mian() {
        // TODO Auto-generated method stub
        Outer2.Inner2 inner=new Outer2.Inner2();
    }
}

class Outer2{
    static class Inner2{
        
    }
}

匿名内部类

  • 匿名内部类只会被使用一次
package com.oop;

public class TestAnonymousInnerClass {
    public static void test(A a){
        a.aa();
    }
    public static void main(String[] args) {
        TestAnonymousInnerClass.test(new A(){

            @Override
            public void aa() {
                // TODO Auto-generated method stub
                System.out.println("匿名内部类");
            }
            
        });
    }
}

interface A{
    void aa();
}

局部内部类

  • 就是在一个方法中有类,该类只为该方法提供服务,很少用

相关文章

  • Java 中的方法内部类

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

  • PHP转JAVA的记录

    Java 数组 内部类 内部类的创建:内部类可以对包内其他类隐藏想实现一个接口时, 不想新建类文件 内部类可以访问...

  • Java内部类

    Java内部类,简单来说就是将一个类定义在另一个类或者方法里面,主要分为成员内部类,局部内部类,匿名内部类和静态内...

  • Java内部类

    Java内部类 大纲: java内部类有什么特点?为什么需要内部类? 非静态内部类持有外部类的引用 内部类的分类。...

  • 内部类

    内部类可以分为:非静态内部类;静态内部类;匿名内部类。 一、内部类 首先要说,Java为什么要使用内部类?java...

  • Java静态内部类

    Java静态内部类 博客分类: java 两种内部类 Java的内部类有两种,一种是静态内部类,另一种是普通内部类...

  • Kotlin内联类、内部类、嵌套类

    Kotlin内联类、内部类、嵌套类 在开始介绍Kotlin内联类、内部类、嵌套类之前,先简要回顾一下java中的内...

  • JavaSE基础知识学习-----内部类

    内部类 类的五个成分:属性,方法,构造器,代码块,内部类。什么是内部类?在java中,允许一个类定义在另一个类的内...

  • Java 内部类和泛型的理解

    Java 内部类 Java非静态内部类持有对外部类的引用,可以访问外部类的状态使用方法 OuterClass.th...

  • 2017-10-12

    这是我学习Java内部类的笔记 1.为什么使用内部类? 使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(...

网友评论

      本文标题:Java学习——内部类

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