簡體   English   中英

我無法增加 For 中的 studentid 值

[英]I can not increase the studentid value in For

我正在 Java 中進行一些編碼,但它不起作用:

導入 java.util.Scanner;

導入 java.util.Arrays;

公共 class 主要 {

    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);

        String [] studentId = new String [3];

        Student name;

        for (int i = 0; i < 3; i++) 
        {
        System.out.print("Enter Name => ");
        name = new Student(input.next());
        studentId[i] = name.toString();
        }
        for (int i = 0; i < 3; i++) 
        {
        System.out.println(studentId[i]);
        }    
}
}
public class Student
{
    private static int studentId;
    private String name;

    public Student(String name) 
    {
    this.name=name;    
    setStudentId(studentId++);
    }

    public int getStudentId() 
    {
    return studentId;
    }

    public void setStudentId(int studentId) 
    {
    this.studentId = studentId;
    }

    @Override
    public String toString()
    {
        return (this.studentId +" "+ "student is "+ " " + "(" + this.studentId + ")"+ this.name);
    }
}

創建新條目時,我需要自動增加 Id。 我嘗試了一切,但仍然無法增加它。

您正在為每個人的 ID 使用 static 變量。 您需要一個單獨的非靜態字段來存儲每個單獨的 ID。

public class Student
{
    private static int nextAvailableStudentId = 1;
    private String name;
    private int studentId;

    public Student(String name) 
    {
    this.name=name;    
    setStudentId(nextAvailableStudentId++);
    }

    public int getStudentId() 
    {
    return studentId;
    }

    public void setStudentId(int studentId) 
    {
    this.studentId = studentId;
    }

    @Override
    public String toString()
    {
        return (this.studentId +" "+ "student is "+ " " + "(" + this.studentId + ")"+ this.name);
    }
}

在構造函數中它應該是:

{
    public Student(String name) 
    {
        this.name=name;    
        setStudentId(studentId + 1);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM