Você está na página 1de 7

Linguagem de Programao I

Construo de Objetos
Exerccios

Joinvile Batista Junior

Exemplo
package entidade;
public class Aluno {
public enum EstadoCivil {solteiro, casado, separado, vivo};
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;
}

UFGD - LPI-E1 - Joinvile Batista Junior

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

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;
}
}
UFGD - LPI-E1 - Joinvile Batista Junior

Exemplo
package controle;
import entidade.Aluno;
import java.util.ArrayList;
public class ImpressoAlunos {
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

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;
}

UFGD - LPI-E1 - Joinvile Batista Junior

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 seleo: 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

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;
}

UFGD - LPI-E1 - Joinvile Batista Junior

Exemplo
private static void imprimirAlunos (String cabealho, Aluno[] alunos) {
System.out.println("--- " + cabealho);
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

Lista de Exerccios
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 mtodo 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 mtodo criarAlunos para utilizar esse construtor e mtodos
de alterao, para criar e inicializar os demais dados de cada aluno
aps a sua criao.

UFGD - LPI-E1 - Joinvile Batista Junior

10

Lista de Exerccios
1.3 Adapte o exemplo:
a) substituindo a classe Aluno pela classe Disciplina, com os seguintes
dados: ttulo, carga horria total, carga horria prtica, tipo
(obrigatria, optativa, eletiva), reuni (sim ou no);
b) e substituindo os filtros de impresso por: carga terica mnima, tipo,
reuni.
1.4 Adapte o exerccio 1.3:
a) pesquisando na classe String um mtodo para verificar se um string
comea com um determinado substring;
b) e incluindo o filtro de pesquisa substring inicial do ttulo.

UFGD - LPI-E1 - Joinvile Batista Junior

11

Lista de Exerccios
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 necessrio, incluido pelo menos o dado
booleano.
1.6 - Adapte o exemplo:
a) substituindo todas as utilizaes de array por ArrayList;
b) e usando somente iteraes do tipo: for (int n = 0; n < conjunto.size();
n++).

UFGD - LPI-E1 - Joinvile Batista Junior

12

Lista de Exerccios
1.7 Adapte o exerccio 1.6:
a) usando somente iteraes do tipo: for (Aluno aluno : alunos).
1.8 Adapte o exerccio 1.7:
a) pesquisando na classe String um mtodo para comparar
lexicograficamente dois strings, tratando igualmente letras maisculas
e minsculas;
b) e criando o mtodo ordenarAlunos, para ordenar os alunos criados
com seus nomes em ordem alfabtica:

UFGD - LPI-E1 - Joinvile Batista Junior

13