Java基础 8.19

目录

1.局部内部类的使用

总结


1.局部内部类的使用

  • 说明:局部内部类是定义在外部类的局部位置,比如方法中,并且有类名
  • 可以直接访问外部类的所有成员,包含私有的
  • 不能添加访问修饰符,因为它的地位就是一个局部变量。局部变量是不能使用修饰符的。但是可以使用final修饰,因为局部变量也可以使用final
  • 作用域:仅仅在定义它的方法或代码块
  • 局部内部类---访问---->外部类的成员访问方式:直接访问
  • 外部类--访问---->局部内部类的成员访问方式:创建对象,再访问(注意:必须在作用域内)

总结

  1. 局部内部类定义在方法中/代码块
  2. 作用域在方法体或者代码块
  3. 本质仍然是一个
  • 外部其他类---不能访问----->局部内部类(因为 局部内部类地位是一个局部变量)
  • 如果外部类和局部内部类的成员重名时,默认遵循就近原则,如果想访问外部类的成员,则可以使用(外部类名.this.成员)去访问
package com.logic.innerclass;

/**
 * 演示局部内部类的的使用
 */
public class LocalInnerClass {
    public static void main(String[] args) {
        Outer02 outer02 = new Outer02();
        outer02.m1();
        System.out.println("outer02 hashcode= " + outer02);
    }
}

class Outer02 {
    private int n1 = 100;

    private void m2() {
        System.out.println("m2方法...");
    }

    public void m1() {
        final class Inner02 {//局部内部类 本质还是一个类
            private int n1 = 900;

            public void f1() {
                //Outer02.this 本质就是外部类对象 即哪个对象调用了m1 Outer02.this就是哪个对象
                System.out.println("内部n1=" + n1 + "外部n1=" + Outer02.this.n1);
                System.out.println("Outer02.this hashcode= " + Outer02.this);
                m2();
            }
        }

        Inner02 inner02 = new Inner02();
        inner02.f1();
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值