Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Linguagem de Programação I Construção de Objetos Exercícios Joinvile Batista Junior UFGD - LPI-E1 - Joinvile Batista Junior 2 Exemplo package entidade; public class Aluno { public enum EstadoCivil {solteiro, casado, separado, viúvo}; private String nome; private int anoNascimento; private char sexo; private EstadoCivil estadoCivil; private boolean estrangeiro; public Aluno(String nome, int anoNascimento, char sexo, EstadoCivil estadoCivil, boolean estrangeiro) { this.nome = nome; this. anoNascimento = anoNascimento; this.sexo = sexo; this. estadoCivil = estadoCivil; this.estrangeiro = estrangeiro; } 2 UFGD - LPI-E1 - Joinvile Batista Junior 3 Exemplo public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public int getAnoNascimento() { return anoNascimento; } public void setAnoNascimento(int anoNascimento) { this. anoNascimento = anoNascimento; } public char getSexo() { return sexo; } UFGD - LPI-E1 - Joinvile Batista Junior 4 Exemplo public void setSexo(char sexo) { this.sexo = sexo; } public EstadoCivil getEstadoCivil() { return estadoCivil; } public void setEstadoCivil(EstadoCivil estadoCivil) { this. estadoCivil = estadoCivil; } public boolean getEstrangeiro() { return estrangeiro; } public void setEstrangeiro(boolean estrangeiro) { this.estrangeiro = estrangeiro; } } 3 UFGD - LPI-E1 - Joinvile Batista Junior 5 Exemplo package controle; import entidade.Aluno; import java.util.ArrayList; public class ImpressãoAlunos { private static Aluno[] alunos; public static void main(String[] args) { alunos = criarAlunos(); imprimirAlunos ("Alunos Cadastrados:", alunos); ArrayList<Aluno> alunos_selecionados = selecionarAlunos(); imprimirAlunos ("Alunos Selecionados:", alunos_selecionados.toArray(new Aluno[alunos_selecionados.size()])); } UFGD - LPI-E1 - Joinvile Batista Junior 6 Exemplo private static Aluno[] criarAlunos() { Aluno[] alunos = new Aluno[8]; alunos[0] = new Aluno ("Ana Julia", 1995, 'F', Aluno.EstadoCivil.solteiro, false); alunos[1] = new Aluno ("Joaquim", 1990, 'M', Aluno.EstadoCivil.casado, true); alunos[2] = new Aluno ("Ana Ligia", 1998, 'F', Aluno.EstadoCivil.solteiro, false); alunos[3] = new Aluno ("Mateus", 1991, 'M', Aluno.EstadoCivil.solteiro, false); alunos[4] = new Aluno ("Livia", 1985, 'F', Aluno.EstadoCivil.casado, true); alunos[5] = new Aluno ("Roberto", 1990, 'M', Aluno.EstadoCivil.casado, false); alunos[6] = new Aluno ("Ana Maria", 1991, 'F', Aluno.EstadoCivil.solteiro, false); alunos[7] = new Aluno ("Sandro", 1992, 'M', Aluno.EstadoCivil.solteiro, true); return alunos; } 4 UFGD - LPI-E1 - Joinvile Batista Junior 7 Exemplo private static ArrayList<Aluno> selecionarAlunos() { int ano_inicial = 1990; int ano_final = 1995; Aluno.EstadoCivil estado_civil = Aluno.EstadoCivil.solteiro; System.out.println("--- Filtros de seleção: alunos nascidos entre " + ano_inicial + " e " + ano_final + " com estado civil " + estado_civil + "\n"); return filtrarAlunos(ano_inicial, ano_final, estado_civil); } UFGD - LPI-E1 - Joinvile Batista Junior 8 Exemplo private static ArrayList<Aluno> filtrarAlunos(int ano_inicial, int ano_final, Aluno.EstadoCivil estado_civil) { ArrayList<Aluno> alunos_selecionados = new ArrayList(); for (int n = 0; n < alunos.length; n++) { int ano_nascimento = alunos[n].getAnoNascimento(); if ((ano_nascimento >= ano_inicial) && (ano_nascimento <= ano_final) && (alunos[n].getEstadoCivil() == estado_civil)) { alunos_selecionados.add(alunos[n]); } } return alunos_selecionados; } 5 UFGD - LPI-E1 - Joinvile Batista Junior 9 Exemplo private static void imprimirAlunos (String cabeçalho, Aluno[] alunos) { System.out.println("--- " + cabeçalho); String dados_aluno; for (Aluno aluno : alunos) { dados_aluno = aluno.getNome() + " nasceu em " + aluno.getAnoNascimento() + " - sexo: "; if (aluno.getSexo() == 'F') dados_aluno += "feminino"; else dados_aluno += "masculino"; dados_aluno += " - estado civil: " + aluno.getEstadoCivil(); if (aluno.isEstrangeiro()) dados_aluno += " - estrangeiro"; System.out.println(dados_aluno); } System.out.println(); } } UFGD - LPI-E1 - Joinvile Batista Junior 10 Lista de Exercícios 1.1 – Adapte o exemplo: a) alterando os strings utilizados para informar o estado civil do aluno, de forma a considerar o sexo do aluno (ex: aluna solteira) – criando o método String toStringEstadoCivil () na classe Aluno. 1.2 – Adapte o exemplo: a) criando um construtor que só inicializa: nome, ano_nascimento e sexo; b) alterando o método criarAlunos para utilizar esse construtor e métodos de alteração, para criar e inicializar os demais dados de cada aluno após a sua criação. 6 UFGD - LPI-E1 - Joinvile Batista Junior 11 Lista de Exercícios 1.3 – Adapte o exemplo: a) substituindo a classe Aluno pela classe Disciplina, com os seguintes dados: título, carga horária total, carga horária prática, tipo (obrigatória, optativa, eletiva), reuni (sim ou não); b) e substituindo os filtros de impressão por: carga teórica mínima, tipo, reuni. 1.4 – Adapte o exercício 1.3: a) pesquisando na classe String um método para verificar se um string começa com um determinado substring; b) e incluindo o filtro de pesquisa “substring inicial do título”. UFGD - LPI-E1 - Joinvile Batista Junior 12 Lista de Exercícios 1.5 – Adapte o exemplo: a) substituindo a classe Aluno por uma classe de sua escolha, que tenha pelo menos: um dado do tipo enumerado e um dado booleano; b) e definindo os filtros que julgar necessário, incluido pelo menos o dado booleano. 1.6 - Adapte o exemplo: a) substituindo todas as utilizações de array por ArrayList; b) e usando somente iterações do tipo: for (int n = 0; n < conjunto.size(); n++). 7 UFGD - LPI-E1 - Joinvile Batista Junior 13 Lista de Exercícios 1.7 – Adapte o exercício 1.6: a) usando somente iterações do tipo: for (Aluno aluno : alunos). 1.8 – Adapte o exercício 1.7: a) pesquisando na classe String um método para comparar lexicograficamente dois strings, tratando igualmente letras maiúsculas e minúsculas; b) e criando o método ordenarAlunos, para ordenar os alunos criados com seus nomes em ordem alfabética:
Compartilhar