基本介绍
Java四大内部类
如果定义类在局部位置(方法中/代码块) :(1)局部内部类(2)匿名内部类
定义在成员位置(1)成员内部类(2)静态内部类
内部类分类
局部内部类使用
package com.InnerClass; public class localInnerClass { public static void main(String[] args) { new Outer().hi(); } } class Outer{//外部类 private int n = 10; private void outerWay(){ System.out.println( "调用了外部类的私有方法"); } public void hi(){//1.局部内部类是定义在外部类的局部位置,通常在方法 //3.内部局部类不能添加访问修饰符,但是可以使用 final 修饰 //4.作用域 : 仅仅在定义它的方法或代码块中 final class LocalInnerClass{//局部内部类(本质仍然是一个类) //2.局部内部类可以直接访问外部类的所有成员,包含私有的 private int n = 100; public void gi(){ //7. 如果外部类和局部内部类的成员重名时, // 默认遵循就近原则,如果想访问外部类的成员, // 使用 外部类名.this.成员 去访问 //Outer.this 本质就是外部类的对象, //即哪个对象调用了 n, Outer.this 就是哪个对象 System.out.println("局部内部类的n=" + n + " 外部类的n=" + Outer.this.n); System.out.println("Outer.this hashcode=" + Outer.this); outerWay(); } } //在外部类的方法中, // 创建LocalInnerClass对象, // 就可以调用局部内部类里的方法 LocalInnerClass innerClass = new LocalInnerClass(); innerClass.gi(); } }