//Enumeracoes enum TipoProf { DE,Subst,TP; } enum Sexo{ Masculino,Feminino; } enum TipoEndereco { Comercial, Residencial; } enum Estado{ AL,PR; } //Classes class Endereco { private String rua; private String bairro,telefone; private Integer numero; private String complemento; private Cidade cidade; private String estado; private String CEP; private String pais; private String tipo; } abstract class Pessoa { private String nome; private String matricula; private Date dataNascimento; private ArrayList enderecos; private String telCelular; private String cpf,rg,nomePai,nomeMae,estadoCivil; } class Aluno extends Pessoa{ private Double iraGlobal; private ArrayList historico; } class Cidade{ private String nome; } class Professor extends Pessoa{ private TipoProf tipo; private Arraylist turmas; } class Diciplina{ private String nome,codigo,ementa; private Integer creditos, cargaHoraria; private Arraylist requisitos; private Arraylist turmas; } class Horario{ private Time hora; private DiaSemana; } class Turma{ private Integer ano,periodo; private Arraylist horarios, professores; private Diciplina diciplina; private Arraylist inscricoes; } class Historico{ private Double nota; private Integer frequencia; private Turma turma; }