Maillys da Silva Costa R0552A9 CC3Q18
// ------------------- Classe Pessoa -------------------
public abstract class Pessoa {
private String nome;
private String cpf;
private String email;
private String dataNascimento;
public Pessoa(String nome, String cpf, String email, String dataNascimento) {
this.nome = nome;
this.cpf = cpf;
this.email = email;
this.dataNascimento = dataNascimento;
}
public abstract void exibirDados();
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
public String getCpf() { return cpf; }
public void setCpf(String cpf) { this.cpf = cpf; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public String getDataNascimento() { return dataNascimento; }
public void setDataNascimento(String dataNascimento) { this.dataNascimento = dataNascimento; }
}
// ------------------- Classe Funcionario -------------------
public abstract class Funcionario extends Pessoa {
private String matricula;
private double salario;
private String departamento;
public Funcionario(String nome, String cpf, String email, String dataNascimento,
String matricula, double salario, String departamento) {
super(nome, cpf, email, dataNascimento);
this.matricula = matricula;
this.salario = salario;
this.departamento = departamento;
}
public abstract double calcularBonus();
public String getMatricula() { return matricula; }
public void setMatricula(String matricula) { this.matricula = matricula; }
public double getSalario() { return salario; }
public void setSalario(double salario) { this.salario = salario; }
public String getDepartamento() { return departamento; }
public void setDepartamento(String departamento) { this.departamento = departamento; }
}
// ------------------- Classe Abstrata Curso -------------------
public abstract class Curso {
private String nome;
private String codigo;
private int cargaHoraria;
private String coordenador;
public Curso(String nome, String codigo, int cargaHoraria, String coordenador) {
this.nome = nome;
this.codigo = codigo;
this.cargaHoraria = cargaHoraria;
this.coordenador = coordenador;
}
public abstract void descricaoCurso();
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
public String getCodigo() { return codigo; }
public void setCodigo(String codigo) { this.codigo = codigo; }
public int getCargaHoraria() { return cargaHoraria; }
public void setCargaHoraria(int cargaHoraria) { this.cargaHoraria = cargaHoraria; }
public String getCoordenador() { return coordenador; }
public void setCoordenador(String coordenador) { this.coordenador = coordenador; }
}
// ------------------- Classe Edificio -------------------
public abstract class Edificio {
private String nome;
private String bloco;
private int quantidadeSalas;
private boolean temLaboratorio;
public Edificio(String nome, String bloco, int quantidadeSalas, boolean temLaboratorio) {
this.nome = nome;
this.bloco = bloco;
this.quantidadeSalas = quantidadeSalas;
this.temLaboratorio = temLaboratorio;
}
public abstract void informacoes();
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
public String getBloco() { return bloco; }
public void setBloco(String bloco) { this.bloco = bloco; }
public int getQuantidadeSalas() { return quantidadeSalas; }
public void setQuantidadeSalas(int quantidadeSalas) { this.quantidadeSalas = quantidadeSalas;
}
public boolean isTemLaboratorio() { return temLaboratorio; }
public void setTemLaboratorio(boolean temLaboratorio) { this.temLaboratorio = temLaboratorio;
}
}
// ------------------- Classe Disciplina -------------------
public abstract class Disciplina {
private String nome;
private String codigo;
private String professorResponsavel;
private int cargaHoraria;
public Disciplina(String nome, String codigo, String professorResponsavel, int cargaHoraria) {
this.nome = nome;
this.codigo = codigo;
this.professorResponsavel = professorResponsavel;
this.cargaHoraria = cargaHoraria;
}
public abstract void realizarAvaliacao();
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
public String getCodigo() { return codigo; }
public void setCodigo(String codigo) { this.codigo = codigo; }
public String getProfessorResponsavel() { return professorResponsavel; }
public void setProfessorResponsavel(String professorResponsavel) { this.professorResponsavel =
professorResponsavel; }
public int getCargaHoraria() { return cargaHoraria; }
public void setCargaHoraria(int cargaHoraria) { this.cargaHoraria = cargaHoraria; }
}
// ------------------- Classe Professor -------------------
public class Professor extends Funcionario {
private String areaPesquisa;
public Professor(String nome, String cpf, String email, String dataNascimento,
String matricula, double salario, String departamento, String areaPesquisa) {
super(nome, cpf, email, dataNascimento, matricula, salario, departamento);
this.areaPesquisa = areaPesquisa;
}
@Override
public void exibirDados() {
System.out.println("Professor: " + getNome());
}
@Override public double
calcularBonus() { return
getSalario() * 0.15;
}
public String getAreaPesquisa() { return areaPesquisa; } public void
setAreaPesquisa(String areaPesquisa) { this.areaPesquisa = areaPesquisa; }
}
// ------------------- Classe Aluno -------------------
public class Aluno extends Pessoa {
private String matricula;
private String curso;
public Aluno(String nome, String cpf, String email, String dataNascimento, String matricula,
String curso) {
super(nome, cpf, email, dataNascimento);
this.matricula = matricula;
this.curso = curso;
}
@Override
public void exibirDados() {
System.out.println("Aluno: " + getNome());
}
public String getMatricula() { return matricula; }
public void setMatricula(String matricula) { this.matricula = matricula; }
public String getCurso() { return curso; }
public void setCurso(String curso) { this.curso = curso; }
}
// ------------------- Classe CursoGraduacao -------------------
public class CursoGraduacao extends Curso {
private boolean possuiEstagioObrigatorio;
public CursoGraduacao(String nome, String codigo, int cargaHoraria, String coordenador,
boolean possuiEstagioObrigatorio) {
super(nome, codigo, cargaHoraria, coordenador);
this.possuiEstagioObrigatorio = possuiEstagioObrigatorio;
}
@Override
public void descricaoCurso() {
System.out.println("Curso de graduação: " + getNome());
}
public boolean isPossuiEstagioObrigatorio() { return possuiEstagioObrigatorio; }
public void setPossuiEstagioObrigatorio(boolean possuiEstagioObrigatorio) {
this.possuiEstagioObrigatorio = possuiEstagioObrigatorio; }
}
// ------------------- Classe Biblioteca -------------------
public class Biblioteca extends Edificio {
private int numeroLivros;
public Biblioteca(String nome, String bloco, int quantidadeSalas, boolean temLaboratorio, int
numeroLivros) {
super(nome, bloco, quantidadeSalas, temLaboratorio);
this.numeroLivros = numeroLivros;
}
@Override
public void informacoes() {
System.out.println("Biblioteca: " + getNome() + ", Livros: " + numeroLivros);
}
public int getNumeroLivros() { return numeroLivros; }
public void setNumeroLivros(int numeroLivros) { this.numeroLivros = numeroLivros; }
}
// ------------------- Classe Matematica -------------------
public class Matematica extends Disciplina {
private int numeroProvas;
public Matematica(String nome, String codigo, String professorResponsavel, int cargaHoraria,
int numeroProvas) {
super(nome, codigo, professorResponsavel, cargaHoraria);
this.numeroProvas = numeroProvas;
}
@Override
public void realizarAvaliacao() {
System.out.println("Avaliando disciplina de Matemática");
}
public int getNumeroProvas() { return numeroProvas; }
public void setNumeroProvas(int numeroProvas) { this.numeroProvas = numeroProvas; }
}