局部内部类

内部类:一个类包含一个类 就是内部类 例如:人的身体和心脏 汽车车身和发动机的关系一样都是包含

分类:

1.成员内部类

2.局部内部类

3.匿名内部类

局部内部类概述

局部内部类定义:如果一个类是定义在一个方法内部的 那么这是一个局部内部类

局部内部类属性:只有当前所属的方法才能使用 出了这个方法外面就不能用了

局部内部类定义格式

修饰符 class 外部类名称{

   修饰符 返回值 方法名称(参数列表){

      class 局部内部类名称{

    }

  }

}

代码:

局部内部类:

public class Outer {//外部类
public void methodOuter(){//外部类成员变量
class Inner{//局部内部类
int num=10;//局部内部类的成员变量
public void MethodInner(){//局部内部类的成员方法
System.out.println(num);
}
}
//局部变量的属性是只有在当前所属的方法才可以使用 出了方法 就不可以用了
new Inner().MethodInner();//进行创建对象和调用方法
}
}

测试类:

public class test {
public static void main(String[] args) {
//直接创建外部类对象 并调用外部类的成员方法
new Outer().methodOuter();
}
}

运行结果:

 局部内部类的final问题

局部内部类 如果希望访问所在方法的局部变量 那么这个局部变量必须是有效final的

在jdk8版本以后 只要局部变量事实不变 那么final关键字可以省略

原因:

1.new出来的对象在堆内存当中

2.局部变量是跟着方法走的 在栈内存当中

3.方法运行结束之后 立刻出栈 局部变量就会立刻消失

4.但是new出来的对象会在堆当中存在 知道垃圾回收消失

posted @   baimingze  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示