首页 > 其他分享 >局部内部类

局部内部类

时间:2024-09-16 11:24:32浏览次数:10  
标签:内部 int 局部 System println final out

Java局部内部类是指在一个方法或代码块内部定义的内部类。与成员内部类不同,局部内部类只能在定义它的方法或代码块内部使用,无法在外部访问。


public class Out {

   /*属性和方法*/

   private int outVariable = 1;

   /*外部类定义的属性*/

   private int commonVariable = 2;

   /*静态的信息 */

   private static int outStaticVariable = 3;

   /*成员外部方法*/

   public void outerMethod() {

       System.out.println("我是外部类的outerMethod方法");

   }

   /*静态外部方法*/

   public static void outerStaticMethod() {

       System.out.println("我是外部类的outerStaticMethod静态方法");

   }

   /*成员方法,内部定义局部内部类*/

   public void outerCreatMethod(int value) {

       //public int a = 1; // 不行,局部内部类不能有访问权限修饰符

       //static int a = 1; // 也不能有static 修饰

       final int a = 1;

       int a1 = 1; // 默认为final

       /*女性*/

       boolean sex = false;

       //sex = true; // 有且仅有赋值一次

       /*局部内部类,类前不能有访问修饰符*/

       class In {

           private int inVariable = 10;

           private int commonVariable = 20;

           /*局部内部类方法*/

           public void InnerShow() {

               System.out.println("innerVariable:" + inVariable);

               //局部变量

               System.out.println("是否男性:" + sex);

               System.out.println("参数value:" + value);

               //调用外部类的信息

               System.out.println("outerVariable:" + outVariable);

               System.out.println("内部的commonVariable:" + commonVariable);

               System.out.println("外部的commonVariable:" + Out.this.commonVariable);

               System.out.println("outerStaticVariable:" + outStaticVariable);

               outerMethod();

               outerStaticMethod();

           }

       }

       //局部内部类只能在方法内使用

       In in = new In();

       in.InnerShow();

   }

   /* 开始程序 */

   public static void main(String[] args) {

       Out out = new Out();

       out.outerCreatMethod(100);

   }

}

总结:【抓住关键——作用域,作为方法的局部成员存在】


局部内部类不能有访问权限修饰符,无法创建静态信息。                                                局部内部类就像是方法里面的一个局部变量一样,是不能有访问权限修饰符和static修饰符的。

只能在方法内部使用。

可以直接访问方法内的局部变量和参数。【存在限制,需要 final 或有效的final修饰的】,但是不能更改。

①直接被final修饰的变量。

②已被赋值且始终未改变的变量(有且仅有赋值一次),引用指向不能改变。注:JDK8以前(不包括8)只能访问被final修饰的变量。

编译器也有自己独立的字节码文件,命名格式:外部类名字$数字内部类名字.class

注:当局部内部类的变量修改时,就会产生如下错误:


Variable ‘xxx’ is accessed from within inner class, needs to be final or effectively final




传入局部内部类所在方法的参数同理,如果一直不变则可使用,反之则会报错。


标签:内部,int,局部,System,println,final,out
From: https://blog.51cto.com/u_16270487/12030511

相关文章

  • 匿名内部类
     Java匿名内部类是一种特殊的内部类,它没有类名,直接在创建对象时定义并实现。通常用于创建只需要使用一次的类对象,可以简化代码,提高代码的可读性和可维护性。原本我们需要创建子类或实现类,去继承父类或实现接口,才能重写其中的方法。但是有时候我们这样做了,然而子类和实现类却只使用......
  • 踩坑日志3:每一个epoch都会重新随机采样,固定batch容易使模型陷入局部解
    前几天师弟在机器学习领域看到了一个对样本选择的方法,目的是从特征的角度均匀选择样本。如下图所示,首先初始化将样本的特征进行加和并归一化,迭代取出样本(取值最大的那个样本,再令样本的值乘以1-样本的值更新所有样本)。这般便可以从理论上均匀的取到不同分布的样本,于是猜想如果这样......
  • java 反射创建内部类
    Java反射创建内部类在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时检查或修改类的行为。内部类(InnerClass)则是一种特殊的类,它定义在另一个类的内部,并可以访问外部类的成员。本文将深入探讨如何使用Java反射来创建内部类的实例,并展示其在实际开发中的应用。内部类的基......
  • 项目内部调用的远程接口开发
    编写一个项目内部调用的远程接口通常是为了在分布式系统或者微服务架构中,实现各个服务之间的通信和数据交换。这样的远程接口专门用于服务之间的调用,而不是直接暴露给外部用户或前端。项目内部的远程接口统一放在api工程首先进入api编写接口,注意使用@FeignClient注解进入......
  • 局域网聊天工具:提升企业内部信息安全的私有化即时通讯软件
    在数字化转型的过程中,越来越多的企业依赖即时通讯工具来进行内部沟通与协作。然而,许多企业在使用的微信、钉钉等SaaS聊天工具却存在着严重的安全隐患和管理难题,这些问题不仅危及信息安全,还影响企业的整体运营效率。针对这些痛点,选择一款私有化部署的局域网聊天工具成为了企业的当务......
  • 最新版今日头条独家内部玩法,单号轻松简单日入2张
    今日头条作为流行的新闻和内容平台,为内容创作者提供了一个展示和盈利的机会。本文档详细介绍了利用特定工具在今日头条上进行文章创作的流程和优势。项目背景随着移动互联网的普及,越来越多的用户通过手机应用获取信息。今日头条凭借其算法推荐系统,成为用户获取信息的重......
  • 最新版今日头条独家内部玩法,单号轻松简单日入2张
    今日头条作为流行的新闻和内容平台,为内容创作者提供了一个展示和盈利的机会。本文档详细介绍了利用特定工具在今日头条上进行文章创作的流程和优势。项目背景随着移动互联网的普及,越来越多的用户通过手机应用获取信息。今日头条凭借其算法推荐系统,成为用户获取信息的重......
  • java匿名内部类
    定义内部类:将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。匿名内部类格式:new父类名或者接口名(){  //方法重写  @Override   publicvoidmethod(){    //执行语句  }};匿名内部类只能使用一次,用于创建一次性......
  • Java 并发编程深度解析:synchronized 关键字的内部原理与应用
    引言在并发编程中,当多个线程访问同一个共享资源时,我们必须考虑如何维护数据的原子性。Java是通过synchronized关键字实现锁功能来做到这点的,synchronized是JVM实现的一种内置锁,锁的获取和释放由JVM隐式实现。锁的本质如上图所示,多个线程要访问同一个资源。线程就......
  • AI基础 L8 Local Search I 局部搜索
    IterativeImprovementAlgorithms•Inmanyoptimizationproblems,thepathtoagoalisirrelevant—thegoalstateitselfisthesolution•Statespace=asetofgoalstates—findonethatsatisfiesconstraints(e.g.,notwoclassesatsametime)—......