当前位置: 首页 > 知识库问答 >
问题:

使用嵌套类执行Java代码时出错

殳阳飙
2023-03-14

代码是这样的

public class ShadowTest {

    public int x = 0;

    class FirstLevel {

        public int x = 1;

        void methodInFirstLevel(int x) {
            System.out.println("x = " + x);
            System.out.println("this.x = " + this.x);
            System.out.println("ShadowTest.this.x = " + ShadowTest.this.x);
        }
    }

    public static void main(String... args) {
        ShadowTest st = new ShadowTest();
        ShadowTest.FirstLevel fl = st.new FirstLevel();
        fl.methodInFirstLevel(23);
    }
}

共有1个答案

莫逸仙
2023-03-14

您总是可以使用javac filename命令编译类。然后使用命令java main_class_name执行代码

javac ShadowTest.java
java ShadowTest

/**产出**/

x = 23
this.x = 1
ShadowTest.this.x = 0

如果类中存在内部类,则将对其进行编译,并且类文件将是classname$innerClassName。

 类似资料:
  • 本文向大家介绍java-synchronized 嵌套使用代码详解,包括了java-synchronized 嵌套使用代码详解的使用技巧和注意事项,需要的朋友参考一下 当synchronized使用过多时,可能会造成死锁,那么死锁到底是怎么一回事呢。先看下面的代码,实现死锁: 以上代码由于 synchronized 的同步造成了死锁,死锁是两个或多个线程同时等待对方的完成,而程序无法继续执行。在解

  • 问题内容: 我最近正在阅读Robert Sedgewick写的《算法》一书。 在阅读“算法分析”时,我遇到了一段代码。代码 如下: 我想知道的是-loop中的if-statementfor被执行了多少次。这本书提供的答案是N(N-1)(N-2)/6。但是我不知道为什么,有人可以解释。 问题答案: 您可以手动执行此操作,但是WolframAlpha在此方面要好得多。 不难验证

  • 我在执行脚本时遇到了这个错误。我已经升级了FF(56),Gecko(v0.19)和Selenium 3.6。。。 这是我的代码: 日志中的错误: 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。壁虎。驱动系统属性;有关更多信息,请参阅https://github.com/mozilla/geckodri

  • 我在这里学习选修课的教程-https://www.geeksforgeeks.org/java-8-optional-class/其中有以下几点 我正在尝试使用检查as减少行数 但无法进一步了解其他部分 有办法吗?

  • 问题内容: 当以下Java代码在eclipse中执行时,它会提供正确的输出(即打印“ Class B”),但是根据Java规范,该代码无法编译(因为超类构造函数需要一个参数,并且构造函数由B类的编译器包括对超类no arg构造函数的调用(未定义),并且当尝试在命令行中使用javac命令编译文件时,它仅编译超类(即A类),并因以下编译而失败错误: 以下是java文件的内容: 有人可以解释eclips

  • 问题内容: 下面的代码将找到两行的交点并返回点对象。如果仅将由IntersectionOf2Lines类创建point,那么我应该将point嵌套吗?如果不是,那为什么不呢?谢谢 问题答案: 如果其他任何类都不需要Point类,并且Point类不需要访问IntersectionOf2Lines的私有类成员,则可以将Point类设为 静态嵌套类 。 甲 静态嵌套类 是具有给超类成员没有访问,通常用于

  • 问题内容: 我查看了Javadoc,但找不到与此相关的信息。 如果该方法中的代码告诉我这样做,我希望应用程序停止执行该方法。 如果那句话令人困惑,这就是我想在代码中执行的操作: 因此,如果布尔值为true,则该方法必须停止执行其他代码。 这只是一个例子。我还有其他方法可以完成我在应用程序中要完成的工作,但是如果可能的话,肯定会有所帮助。 问题答案: 做就是了: 只写是多余的(例如,这样就不会误写)

  • 问题内容: 我有一个包含以下内容的字符串: 我可以在Java中执行此字符串中的代码吗? 问题答案: 从Java 6开始,您 可以 使用SDK中的标准API 编译并运行定义为字符串或文件的Java 编译单元 (编译单元基本上是.java文件中的所有内容-包,导入,类/接口/枚举),看看这个例子。但是,您 不能 像问题中那样运行任意Java代码段。 如果可能的话,最好嵌入一种不同的脚本语言,该脚本语言