欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > java 局部内部类

java 局部内部类

2025/4/6 0:47:25 来源:https://blog.csdn.net/m0_74037729/article/details/147002216  浏览:    关键词:java 局部内部类

java 局部内部类

  • 一、位置
  • 二、特点
  • 三、局部内部类的实例化
  • 四、代码实例一:演示特点一
  • 五、代码实例二:演示特点二和特点三
  • 六、代码实例三:演示局部内部类的实例化

同步文章(更好的排版):
java 局部内部类

一、位置

定义在外部类的方法中。局部内部类的作用范围仅限此方法中

二、特点

  1. 局部内部类不能使用任何访问修饰符
  2. 如果局部内部类所在方法是非静态方法,则此局部内部类可以直接访问外部类的属性和方法
  3. 如果局部内部类所在方法是静态方法,则此局部内部类就只能直接访问外部类的静态属性和方法
  4. 局部内部类可以直接访问局部变量,局部变量必须使用 final 修饰,jdk1.8 之后,final 关键字可以省略,对象的生命周期长于局部变量
  5. 局部内部类不能声明静态成员,但可以使用静态常量

三、局部内部类的实例化

局部内部类的实例化,需要在对应的方法中进行

四、代码实例一:演示特点一

public class JuBuOuter {//外部类的成员方法public void show(){//局部内部类//局部内部类不能使用任何访问修饰符class Inner{}public class Inner{}protected class Inner{}private class Inner{}}
}

五、代码实例二:演示特点二和特点三

public class JuBuOuter02 {//外部类的非静态成员属性private String name = "公众号:牧牧川";//外部类的静态成员属性private static int age = 18;//外部类的非静态成员方法public void t1(){//局部内部类class Inner01{//局部内部类的方法//如果局部内部类所在方法是非静态方法,则此局部内部类可以直接访问外部类的属性和方法public void show(){System.out.println("我是非静态成员方法中的内部类");System.out.println(name);System.out.println(age);}}}//外部类的静态成员方法public static void t2(){//局部内部类class Inner02{//局部内部类的方法//如果局部内部类所在方法是静态方法,则此局部内部类就只能直接访问外部类的静态属性和方法public void show(){System.out.println("我是静态成员方法中的内部类");
//                System.out.println(name);System.out.println(age);}}}
}

六、代码实例三:演示局部内部类的实例化

public class JuBuOuter02 {//外部类的非静态成员属性private String name = "公众号:牧牧川";//外部类的静态成员属性private static int age = 18;//外部类的非静态成员方法public void t1(){//局部内部类class Inner01{//局部内部类的方法//如果局部内部类所在方法是非静态方法,则此局部内部类可以直接访问外部类的属性和方法public void show(){System.out.println("-----我是非静态成员方法中的局部内部类-----");System.out.println(name);System.out.println(age);}}//局部内部类的实例化,需要在对应方法中进行Inner01 inner01 = new Inner01();inner01.show();}//外部类的静态成员方法public static void t2(){//局部内部类class Inner02{//局部内部类的方法//如果局部内部类所在方法是静态方法,则此局部内部类就只能直接访问外部类的静态属性和方法public void show(){System.out.println("-----我是静态成员方法中的局部内部类----");
//                System.out.println(name);System.out.println(age);}}//局部内部类的实例化,需要在对应方法中进行Inner02 inner02 = new Inner02();inner02.show();}}

public class TestJuBuOuter02 {public static void main(String[] args) {//创建外部类对象JuBuOuter02 juBuOuter02 = new JuBuOuter02();//通过外部类对应的方法,调用对应的局部类juBuOuter02.t1();juBuOuter02.t2();}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词