gpt4 book ai didi

java - 使用 Point 作为外部类编写内部类

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:06 24 4
gpt4 key购买 nike

对于一项作业,我需要在 java.awt.Point 类 Point 中创建一个类。我需要能够在为内部/嵌套类创建自己的变量时使用点方法。我对静态嵌套类和内部类之间的差异有点困惑,不知道该使用哪一个。我尝试使用静态嵌套类,但遇到了错误“此处不允许修饰符静态”

我的错误尝试:

class Point {
static class RobotJAW {

int goldcollected, x, y;

RobotJAW() {
goldcollected = 0;
alive = true;
x = 0;
y = 0;
}

}
}

创建这个类的目的是让机器人搜索一片黄金和炸弹,并在被炸弹摧毁的同时收集黄金。我只能使用 java API 中的 Point 和 Scanner 类。我需要使用点方法 equals(obj)、move(int x, int y)、getLocation() 和 setLocation(int x, int y)。但我需要添加 goldcollected 和 live 变量。另外,这是学校的作业,所以我想获得更多关于该主题的知识和一些指导,而不是接受别人的作业。

最佳答案

For an assignment I need to create a class within class Point from java.awt.Point.

只有当您拥有外部类的源代码并且可以重新编译它时,您才能在类中创建类。您不能对 java.awt.Point 执行此操作。

如果您认为您的作业告诉您这样做,那么您可能误解了您的作业所说的内容。

当然,在Point内创建嵌套类没有多大意义。 AFAIK,没有什么(明智的)嵌套在 Point 中的类可以做非嵌套类不能做的事情。也许作业要求您扩展 Point 类;即创建一个子类而不是嵌套类。

<小时/>

(实际上,理论上可以做到这一点,但用纯Java不行;例如

  • 您可以下载 OpenJDK 的源代码,将嵌套类添加到 java.awt.Point 并重建。但你最终得到的不是 Java。

  • 您可以使用字节码魔法为嵌套类构建类文件。如果你做对了,它将是可加载的,并且(我认为)它将能够访问外部类的私有(private)方法和属性。但这不是纯Java。

这两种方法都是彻底糟糕的主意,这几乎肯定不是你的作业期望你做的。)

关于java - 使用 Point 作为外部类编写内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8115048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com