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

Construção de Objetos

Embed Size (px)

DESCRIPTION

Java

Citation preview

  • 1Linguagem de Programao I

    Construo de Objetos

    Exerccios

    Joinvile Batista Junior

    UFGD - LPI-E1 - Joinvile Batista Junior 2

    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;

    }

  • 2UFGD - 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;

    }

    }

  • 3UFGD - LPI-E1 - Joinvile Batista Junior 5

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

    }

  • 4UFGD - LPI-E1 - Joinvile Batista Junior 7

    Exemplo

    private static ArrayList 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 8

    Exemplo

    private static ArrayList filtrarAlunos(int ano_inicial,int ano_final, Aluno.EstadoCivil estado_civil) {

    ArrayList 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

  • 5UFGD - LPI-E1 - Joinvile Batista Junior 9

    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 10

    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.

  • 6UFGD - LPI-E1 - Joinvile Batista Junior 11

    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 12

    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++).

  • 7UFGD - LPI-E1 - Joinvile Batista Junior 13

    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: