Intern
unknown
plain_text
9 months ago
4.2 kB
16
Indexable
import java.util.Calendar;
/**
* L01-Create a java console program to manage Candidates ò company.
*
* @author KhangTNCE180189 - Trần Nhất Khang
*/
public class Intern extends Candidate {
public static final int MIN_AGE = 21; // Minimum age for intern candidates
public static final int MAX_AGE = 65; // Maximum age for experience candidates
private String major; // Candidate's major
private String semester; // Candidate's current semester
private String universityName; // Name of the university
/**
* Constructor for the Intern class.
*
* @param candidateId The candidate's ID.
* @param firstName The candidate's first name.
* @param lastName The candidate's last name.
* @param birthDate The candidate's birth year.
* @param address The candidate's address.
* @param phone The candidate's phone number.
* @param email The candidate's email.
* @param candidateType The type of the candidate (2 for Intern).
* @param major The candidate's major.
* @param semester The candidate's current semester.
* @param universityName The name of the university the candidate is
* attending.
*/
public Intern(String candidateId, String firstName, String lastName, int birthDate, String address,
String phone, String email, String candidateType, String major, String semester, String universityName) {
super(candidateId, firstName, lastName, birthDate, address, phone, email, candidateType);
this.major = major;
this.semester = semester;
this.universityName = universityName;
// Validate birth date during construction
if (!isValidBirthDate(birthDate)) {
throw new IllegalArgumentException("Invalid birth date for Intern candidate.");
}
}
/**
* Validates the birth year for Intern candidates.
*
* @param birthDate The candidate's birth year.
* @return true if valid, otherwise false.
*/
public static boolean isValidBirthDate(int birthDate) {
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
return (currentYear - birthDate) >= MIN_AGE &&
(currentYear - birthDate) <= MAX_AGE;
}
/**
* Get the major of the intern.
*
* @return Major.
*/
public String getMajor() {
return major; // Return the major of the intern
}
/**
* Set the major of the intern.
*
* @param major Major to set.
*/
public void setMajor(String major) {
this.major = major; // Set the major of the intern
}
/**
* Get the current semester of the intern.
*
* @return Semester.
*/
public String getSemester() {
return semester; // Return the current semester of the intern
}
/**
* Set the current semester of the intern.
*
* @param semester Semester to set.
*/
public void setSemester(String semester) {
this.semester = semester; // Set the current semester of the intern
}
/**
* Get the name of the university.
*
* @return University name.
*/
public String getUniversityName() {
return universityName; // Return the name of the university
}
/**
* Set the name of the university.
*
* @param universityName University name to set.
*/
public void setUniversityName(String universityName) {
this.universityName = universityName; // Set the name of the university
}
/**
* Method to display detailed information for an intern candidate. This
* method overrides the printDetails method from the Candidate class to
* include specific details for intern candidates.
*/
@Override
public String toString() {
return super.toString() + String.format(" | Major: %s | Semester: %s | University: %s",
major, semester, universityName);
}
}
Editor is loading...
Leave a Comment