diff --git a/1ano/2semestre/poo/src/aula06/Bolser.java b/1ano/2semestre/poo/src/aula06/Bolser.java new file mode 100644 index 0000000..77a08e4 --- /dev/null +++ b/1ano/2semestre/poo/src/aula06/Bolser.java @@ -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); + } +} diff --git a/1ano/2semestre/poo/src/aula06/Person.java b/1ano/2semestre/poo/src/aula06/Person.java new file mode 100644 index 0000000..6d46a70 --- /dev/null +++ b/1ano/2semestre/poo/src/aula06/Person.java @@ -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); + } +} diff --git a/1ano/2semestre/poo/src/aula06/PersonTest.java b/1ano/2semestre/poo/src/aula06/PersonTest.java new file mode 100644 index 0000000..134b306 --- /dev/null +++ b/1ano/2semestre/poo/src/aula06/PersonTest.java @@ -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(); + } +} diff --git a/1ano/2semestre/poo/src/aula06/Professor.java b/1ano/2semestre/poo/src/aula06/Professor.java new file mode 100644 index 0000000..55dd541 --- /dev/null +++ b/1ano/2semestre/poo/src/aula06/Professor.java @@ -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); + } +} diff --git a/1ano/2semestre/poo/src/aula06/Student.java b/1ano/2semestre/poo/src/aula06/Student.java new file mode 100644 index 0000000..458d990 --- /dev/null +++ b/1ano/2semestre/poo/src/aula06/Student.java @@ -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); + } +}