有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java数据类(多文件管理)

对于我目前正在处理的一个作业,我遇到了一个带有数据类的砖墙,并使用了第二个。java文件,用于从中获取类名并向其中输入数据和值

我尝试在构造函数名和getter+setter的基础上使用设置为private的原始字符串名和int名

我尝试将数据输入到的主文件:

public class HighScores {

    /*
     * Method for all content related to reading the gamescore.java file
     */
    public static void readGameScore(Scanner in) {
        GameScore gScore;

        System.out.println("Please Enter your Username");
        gScore.getUserName = sc.next();        
        }

辅助(数据类文件)我正在尝试获取设置值

public class GameScore {
    //Variable Declarations
    private String Username; // The users' Username/nickname
    private int gameId;      // The ID of the game
    private int score;       // The users score
    private String title;    //Title, dependant on the score

    //Constructor (initialise variable values)
    public GameScore(String userName, int gID, int scoreValue, String scoreTitle) {
        Username = userName;
        //gameId = gID;
        //score = scoreValue;
        //title = scoreTitle;
    }

    /* Getters and Setters */

    //Username Getter + Setter
    public String getUsername() {
        return Username;
    }

    public void setUsername (String userName) {
        Username = userName;
    }

共 (1) 个答案

  1. # 1 楼答案

    这段代码有很多问题。 首先,您不能使用此选项:

    gScore.getUserName = sc.next(); 
    

    getUserName是方法,而不是属性。 如果希望设置此值,则应通过setter进行设置。大概是这样的:

    gScore.setUserName(sc.next());
    

    或者您可以这样设置此值:(请注意,此查询要求非私有访问)

    gScore.username = sc.next();
    

    更重要的是,您从不初始化这个对象gScore。您必须在尝试设置其值之前执行此操作。 你目前的合同可能不是最好的解决方案。删除它并使用默认值:

    GameScore gScore = new GameScore();
    

    然后可以通过setter方法设置所有值

    希望能有点帮助