2 Java 类中的公共私有变量连接问题

问题描述

我有两个文件,Display.java(第一个)和 Lancher.java(第二个)。它们都在同一个项目下,但属于两个不同的类。我想要一个显示图像,但 Launcher 文件中的宽度和高度出现错误。我不知道为什么,因为 public 文件中的宽度和高度都是 Display

import javax.swing.*;
import java.awt.*;

public class Display extends JFrame {
    
    private Canvas canvas;
    
    public Display(int width,int height) {
        setTitle("Game");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        //Process will still be running but application closes when cross is pressed
        setResizable(false);
        
        canvas = new Canvas();
        canvas.setPreferredSize(new Dimension(width,height));
        //Set size to pass in with dimension
        canvas.setFocusable((false));
        add(canvas);
        pack();
        //Add canvas to display & calculate size of display frame
        
        setLocationRelativeTo (null);
        //To open frame in the center of screen as opposed to side
        setVisible(true);
        
        
    }

}

启动器.java

public class Launcher {
    
    public static void main(String[] args) {
        Display display = new Display( width: 800,height: 600);
    }

}

解决方法

Display 类中 Launcher 对象的初始化语法无效。这将是初始化它的正确方法:

Display display = new Display(800,600);

请注意,将值传递给对象的构造时不使用参数名称/标识符。

,

widthheight 是参数名称。 Java 没有命名参数,只有位置参数。换句话说,在对构造函数的调用中删除标签,你应该没问题:

public class Launcher {
    public static void main(String[] args) {
        Display display = new Display(800,600);
    }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...