public class Student { private static final int MAX_SIZE = 20; private static final String NONE = "<Κενό>"; private static final String NO_CLASSROOM = "--"; private static final int CLASSROOM_NAME_LENGTH = 2; private static int amCounter = 0; private final int am; private String firstName = NONE; private String lastName = NONE; private int age = -1; // 15-18 private String classRoom = NO_CLASSROOM; public Student(String firstName, String lastName, int age) { am = ++amCounter; if (isNameValid(firstName)) { this.firstName = firstName.trim(); } if (isNameValid(lastName)) { this.lastName = lastName.trim(); } if (isAgeValid(age)) { this.age = age; } } public int getAm() { return am; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = isNameValid(firstName) ? firstName.trim() : NONE; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = isNameValid(lastName) ? lastName.trim() : NONE; } public int getAge() { return age; } public void setAge(int age) { this.age = isAgeValid(age) ? age : -1; } public String getClassRoom() { return classRoom; } public void setClassRoom(String classRoom) { this.classRoom = isClassRoomValid(classRoom) ? classRoom : NO_CLASSROOM; } @Override public String toString() { return "Student{" + "am=" + am + ", firstName=" + firstName + ", lastName=" + lastName + ", age=" + age + ", classRoom=" + classRoom + '}'; } private boolean isAgeValid(int inAge) { return inAge >= 15 && inAge <= 18; } private boolean isNameValid(String name) { return !name.isBlank() && name.length() <= MAX_SIZE; } private boolean isClassRoomValid(String classRoom) { return !classRoom.isBlank() && classRoom.length() == CLASSROOM_NAME_LENGTH && (classRoom.startsWith("Α") || classRoom.startsWith("Β") || classRoom.startsWith("Γ")) && classRoom.charAt(1) >= '1' && classRoom.charAt(1) <= '9'; } public static void main(String[] args) { Student ioannis = new Student("Γιάννης", "Αντεκοτούμπο", 16); System.out.println("AM: " + ioannis.getAm()); // 1 ioannis.setClassRoom("Β1"); System.out.println(ioannis.getClassRoom()); // Β1 } }