Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 参数[frmStartupGame]的修饰符非法;只允许决赛_Java_Eclipse - Fatal编程技术网

Java 参数[frmStartupGame]的修饰符非法;只允许决赛

Java 参数[frmStartupGame]的修饰符非法;只允许决赛,java,eclipse,Java,Eclipse,我是爪哇的新手,我想为爪哇的学校做一个任命。 这是一个遵循MVC模式的小游戏(我不知道它是如何工作的,我所理解的是这个方法在“包”中分离代码,所以我们只需要修改一些包中的元素,例如,使游戏看起来完全不同;是吗?) 因此,我们使用JFrame和JPanel包创建了一个启动框架。 现在是时候在控制器包中的类名“Control”中创建main()方法了: /** * */ package controller; public class Control { /** * @p

我是爪哇的新手,我想为爪哇的学校做一个任命。 这是一个遵循MVC模式的小游戏(我不知道它是如何工作的,我所理解的是这个方法在“包”中分离代码,所以我们只需要修改一些包中的元素,例如,使游戏看起来完全不同;是吗?)

因此,我们使用JFrame和JPanel包创建了一个启动框架。 现在是时候在控制器包中的类名“Control”中创建main()方法了:

/**
 * 
 */
package controller;

public class Control {

    /**
     * @param args
     */
    public static void main(String[] args) {
        new Control();  
    }
}
现在,我的老师要求我:“私下声明StartupGame类型的属性frmStartupGame(我们之前创建的第一个fram的名称),并添加包含StartupGame文件的包“视图”

我真的不明白发生了什么,老师问我什么

我想他希望我在这两个文件之间创建一个链接(通过在控件类中导入“视图”包?),因此要启动的第一个元素将位于控制器的main中。 为了做到这一点,我们需要在控制文件中声明一个StartupGame实例,对吗

所以我试着这么做

/**
 * 
 */
package controller;

import view.StartupGame;

public class Control {

    /**
     * @param args
     */
    public static void main(String[] args) {
        new Control();
        private StartupGame frmStartupGame;
    }
}

但现在我有了一个“参数[frmStartupGame]的非法修饰符”;仅允许最终版本”错误;我找不到在控制类中声明StartupGame实例的正确语法…

其在函数内部的意思仅允许最终版本:

因此,以下代码无效:

 private StartupGame frmStartupGame;
改为:

 StartupGame frmStartupGame;
更新:“现在我的老师让我:“私下声明StartupGame类型的frmStartupGame属性”

在类级别上创建此变量,如下所示:

public class Control {
    private StartupGame frmStartupGame;

    public static void main(String[] args) {
        new Control();  
    }
}

有关更多详细信息,请参见

放置在方法内部的变量(
main
,在我们的情况下)不能有任何访问修饰符(
private
public
等等)。您可能打算在类内部但在任何方法外部声明它。您可能想了解一下。它归结为关注点的分离。代码的一部分应该只涉及核心逻辑(而不关心如何生成输出或如何收集输入),这就是模型。代码的另一部分应该只关注在屏幕上显示内容,这就是视图。第三部分应该收集用户输入并充当其他部分之间的中间人,即控制器。据我所知,OP被要求将其声明为私有字段,因此应该将其移到方法之外。