美文网首页
技术问 - 成员内部类、局部内部类

技术问 - 成员内部类、局部内部类

作者: sexyhair | 来源:发表于2019-03-06 21:57 被阅读0次

成员内部类

在类的成员位置

使用:

外部类.内部类  对象名 = 外部类对象.内部类对象;

代码:

/**
 * 在内部类中访问外部类:使用  外部类.this
 */
public class InnerDemo1 {

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

class Outer{
    public int num = 10;
    class Inner{
        public int num = 20 ;
        public void show(){
            int num = 30;
            System.out.println(num);//30
            System.out.println(this.num);//20
            System.out.println(Outer.this.num);//10
        }
    }
}

局部内部类:

定义在方法内的类

使用:

可以创建内部类的对象,通过内部类对象操作内部类成员

代码:

public class InnerDemo2 {

    public static void main(String[] args) {
        Outer1 inner = new Outer1();
        inner.show();
    }
}

class Outer1 {
    public void show() {
        //应该使用final修饰,但是1.8没有报错呀?
        //查看class文件发现:int num = 30; 变成了 final int num = 30;
        int num = 30;
        class Inner1 {
            public void method() {
                /*
                 * 查看class文件发现:num还是num,而不是30;       
                 */
                System.out.println("局部内部类--method"+num);
            }           
        }
        Inner1 inner1 = new Inner1();
        inner1.method();
    }
}

局部内部类访问局部变量的注意事项?

局部变量需要使用final修饰
    1.8之前:局部内部类使用局部方法,书写时使用final修饰,
        编译后的class文件中使用变量位置是变量值
    1.8版本:局部内部类使用局部方法,书写时不使用final修饰,
        编译后的class文件中自动给变量加入final修饰,且使用变量位置还是变量名

说明:不确定是1.7之前还是1.8之前

相关文章

  • 内部类

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

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

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

  • java se 成员内部类

    一个类内部包含另一个类身体与心脏分类:1、成员内部类2、局部内部类(匿名内部类) 1、成员内部类 注:内用外可直接...

  • java学习笔记(十三)内部类

    1、概述 内部类即在类的内部在创建一个类 分为成员内部类(直接在类中创建) 局部内部类(在成员方法中创建) 匿名内...

  • Java 内部类

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

  • Java内部类

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

  • 2020-06-27【内部类】

    成员内部类 局部内部类 匿名内部类

  • 方法内部类

    定义在外部类方法中的内部类,也称局部内部类方法内部类1.定义在方法内部,作用范围也在方法内2.和方法内部成成员使用...

  • 技术问 - 成员内部类、局部内部类

    成员内部类 使用: 代码: 局部内部类: 使用: 代码: 局部内部类访问局部变量的注意事项?

  • 面试官:谈谈你对Java内部类的理解?

    java中的内部类可以分为普通内部类(成员内部类),静态内部类,局部内部类和匿名内部类。 成员内部类 成员内部类就...

网友评论

      本文标题:技术问 - 成员内部类、局部内部类

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