[POO] aula06 ex1 added

This commit is contained in:
TiagoRG 2023-03-21 10:13:22 +00:00
parent 83bf361d2a
commit e6ee64272f
5 changed files with 190 additions and 0 deletions

View File

@ -0,0 +1,43 @@
package aula06;
import utils.DateYMD;
public class Bolser extends Student{
private Professor supervisor;
private double monthlyAmount;
public Bolser(String name, int cc, DateYMD birthDate, DateYMD registrationDate, Professor supervisor, double monthlyAmount) {
super(name, cc, birthDate, registrationDate);
this.setSupervisor(supervisor);
this.setMonthlyAmount(monthlyAmount);
}
public Bolser(String name, int cc, DateYMD birthDate, Professor supervisor, double monthlyAmount) {
this(name, cc, birthDate, null, supervisor, monthlyAmount);
}
public Professor getSupervisor() {
return this.supervisor;
}
public void setSupervisor(Professor supervisor) {
if (supervisor == null) {
throw new IllegalArgumentException("Supervisor cannot be null");
}
this.supervisor = supervisor;
}
public double getMonthlyAmount() {
return this.monthlyAmount;
}
public void setMonthlyAmount(double monthlyAmount) {
if (monthlyAmount < 0) {
throw new IllegalArgumentException("Monthly amount cannot be negative");
}
this.monthlyAmount = monthlyAmount;
}
@Override
public String toString() {
return String.format("%s; CC: %d; Date de nascimento: %s; Data de matrícula: %s; NMec: %d; Supervisor: %s; Montante mensal: %.2f", this.getName(), this.getCc(), this.getBirthDate(), this.getRegistrationDate(), this.getNMec(), this.supervisor, this.monthlyAmount);
}
}

View File

@ -0,0 +1,47 @@
package aula06;
import utils.DateYMD;
public class Person {
private String name;
private int cc;
private DateYMD birthDate;
public Person(String name, int cc, DateYMD birthDate) {
this.setName(name);
this.setCc(cc);
this.setBirthDate(birthDate);
}
public String getName() {
return this.name;
}
public void setName(String name) {
if (name == null || name.isEmpty()) {
throw new IllegalArgumentException("Name cannot be null or empty");
}
this.name = name;
}
public int getCc() {
return this.cc;
}
public void setCc(int cc) {
this.cc = cc;
}
public DateYMD getBirthDate() {
return this.birthDate;
}
public void setBirthDate(DateYMD birthDate) {
if (birthDate == null) {
throw new IllegalArgumentException("Birth date cannot be null");
}
this.birthDate = birthDate;
}
@Override
public String toString() {
return String.format("%s; CC: %d; Date de nascimento: %s", this.name, this.cc, this.birthDate);
}
}

View File

@ -0,0 +1,21 @@
package aula06;
import java.util.Scanner;
import utils.DateYMD;
public class PersonTest {
public static void main(String[] args) {
Scanner sin = new Scanner(System.in);
Student al = new Student ("Andreia Melo", 9855678,new DateYMD(18, 7, 1990), new DateYMD(1, 9, 2018));
Professor p1 = new Professor("Jorge Almeida", 3467225, new DateYMD(13, 3, 1967), "Associado", "Informática");
Bolser bls = new Bolser ("Igor Santos", 8976543, new DateYMD(11, 5, 1985), p1, 900);
bls.setMonthlyAmount(1050);
System.out.println("Student:"+ al.getName());
System.out.println(al);
System.out.println("Bolser:"+ bls.getName() + ", NMec: " + bls.getNMec() + ", Bolsa:" + bls.getMonthlyAmount()+ ", Orientador:" + bls.getSupervisor());
System.out.println(bls);
sin.close();
}
}

View File

@ -0,0 +1,39 @@
package aula06;
import utils.DateYMD;
public class Professor extends Person {
private String category;
private String department;
public Professor(String name, int cc, DateYMD birthDate, String category, String department) {
super(name, cc, birthDate);
this.setCategory(category);
this.setDepartment(department);
}
public String getCategory() {
return this.category;
}
public void setCategory(String category) {
if (category == null || category.isEmpty()) {
throw new IllegalArgumentException("Category cannot be null or empty");
}
this.category = category;
}
public String getDepartment() {
return this.department;
}
public void setDepartment(String department) {
if (department == null || department.isEmpty()) {
throw new IllegalArgumentException("Department cannot be null or empty");
}
this.department = department;
}
@Override
public String toString() {
return String.format("%s; CC: %d; Date de nascimento: %s; Categoria: %s; Departamento: %s", this.getName(), this.getCc(), this.getBirthDate(), this.category, this.department);
}
}

View File

@ -0,0 +1,40 @@
package aula06;
import utils.DateYMD;
import java.time.LocalDate;
public class Student extends Person {
private DateYMD registrationDate;
private int nMec;
public static int currentNMec = 100;
public Student(String name, int cc, DateYMD birthDate, DateYMD registrationDate) {
super(name, cc, birthDate);
this.setRegistrationDate(registrationDate);
this.setNMec(Student.currentNMec++);
}
public Student(String name, int age, DateYMD birthDate) {
this(name, age, birthDate, null);
}
public int getNMec() {
return this.nMec;
}
public void setNMec(int nMec) {
this.nMec = nMec;
}
public DateYMD getRegistrationDate() {
return this.registrationDate;
}
public void setRegistrationDate(DateYMD registrationDate) {
LocalDate now = LocalDate.now();
this.registrationDate = registrationDate == null ? new DateYMD(now.getDayOfMonth(), now.getMonthValue(), now.getYear()) : registrationDate;
}
@Override
public String toString() {
return String.format("%s; CC: %d; Date de nascimento: %s; Data de matrícula: %s; NMec: %d", this.getName(), this.getCc(), this.getBirthDate(), this.registrationDate, this.nMec);
}
}