Я не могу увеличить значение студента в For - PullRequest
0 голосов
/ 03 апреля 2020

Я делаю кодирование в Java, но это не работает:

import java .util.Scanner;

import java .util.Arrays;

publi c class Main {

    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 при создании новой записи. Я пытаюсь все, но все еще не могу увеличить его.

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Вы используете переменную stati c для каждого идентификатора. Для хранения каждого отдельного идентификатора вам нужно отдельное, незаполненное поле c.

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);
    }
}
0 голосов
/ 03 апреля 2020

В конструкторе должно быть:

{
    public Student(String name) 
    {
        this.name=name;    
        setStudentId(studentId + 1);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...