Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe...

47
Capítulo 17 Capítulo 17 Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Recursos Especiais do Recursos Especiais do Java Java

Transcript of Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe...

Page 1: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Capítulo 17Capítulo 17

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Recursos Especiais do Recursos Especiais do JavaJava

Page 2: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Objetivos do Capítulo

� Indicar como documentar classes e interfaces e como gerar esta documentação utilizando o javadoc.

� Apresentar alguns mecanismos complementares relacionados com a programação orientada a objetos.

� Explorar os principais recursos que passaram a ser suportados a partir da plataforma Java 5.

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

suportados a partir da plataforma Java 5.

Page 3: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Visão Geral

� Documentação� Comentários

� JavaDoc

� Orientação a objetos� Classes internas

� Arquivos com múltiplas classes

� Objetos anônimos

� Recursos do Java 5

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Recursos do Java 5� Importação estática

� ForEach

� Autoboxing

� VarArgs

� Enum

� Genéricos

Page 4: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Documentação

� Comentários de documentação

� Descrevem componentes e seus membros

� Sintaxe especial

� Interpretados pelo JavaDoc

� Sintaxe:

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

/**

<texto>

<tags>

*/

Page 5: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Documentação

� Tags

� @author: nota sobre o autor.

� @param: descrição de parâmetros.

� @return: descrição do retorno de métodos.

� @see: link para classes e métodos relacionados.

� @throws: exceções disparadas por um método.

� @exception: igual à tag @throws.

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� @exception: igual à tag @throws.

� @deprecated: indica elemento depreciado.

� @link: inclusão manual de link HTML.

� @since: indica versão do JDK em que o recurso foi introduzido.

� @version: versão do componente ou método.

Page 6: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.2 – CalculoArea.java� Classe documentada

� Tarefa: gerar a documentação

� No Linux:

javadoc –d /home/rui/PCJ/Cap17/Docs –author –charset UTF-8

Documentacao.java

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Documentacao.java

� No Windows:

javadoc –d C:\PCJ\Cap17\Docs –author –charset ISO-8859-1

Documentacao.java

Page 7: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Classes Internas

� Criadas dentro de outra classe

� Características

� Encapsuladas como os membros da classe externa.

� Invisíveis a todas as outras classes.

� Acessam diretamente os membros públicos e protegidos da classe externa.

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

classe externa.

� Não podem conter atributos e métodos estáticos.

� Possuem a referência this.

� Acessam a referência this da classe externa:NomeDaClasseExterna.this

� Resultado da compilação<NomeDaClasseExterna>$<NomeDaClasseInterna>.class

Page 8: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 9: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.2 – CalculoArea.java� Classe Circulo

� Construtor: inicializar atributo

� getArea(): PI * raio2

� Classe CalculoArea� calcular( ): solicitar o raio de um círculo, gravá-la em uma instância da classe Circulo, calcular sua área e exibir o resultado.

� main( ): instanciar a classe CalculoArea e invocar seu método calcular( ).

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

calcular( ).

Page 10: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Arquivos com Múltiplas Classes

� Número ilimitado de classes

� Todas acessíveis às demais classes do mesmo pacote

� Só uma classe pública

� Resultado da compilação

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Resultado da compilação

� Um arquivo por classe: <NomeDaClasse>.class

Page 11: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.3 – CalculoCirculo.java� Classe Circulo

� Construtor: inicializar atributo

� getArea(): PI * raio2

� Classe CalculoArea� calcular( ): solicitar o raio de um círculo, gravá-la em uma instância da classe Circulo, calcular sua área e exibir o resultado.

� main( ): instanciar a classe CalculoArea e invocar seu método calcular( ).

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

calcular( ).

Page 12: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Objetos Anônimos

� Objetos desprovidos de referências

� Sintaxe

new <construtor>(<argumentos>)

� Algumas aplicações:

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Argumento na invocação de métodos

� Encapsulamento de dados para gravação em vetor

� Invocação de um único método

Page 13: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.4 – Fila.java� Atributos: ficha, nome.

� Construtor: captar dados e inicializar atributos.

� exibirDados( ): produzir mensagem com valores de atributos.

� main( ): criar dois objetos anônimos e exibir dados.

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 14: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Importação Estática

� A partir do Java 5 – JSE 1.5 (2005)

� Objetivo: facilitar o uso de membros estáticos� Atributos

� Métodos

� Sintaxe:

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

import static <caminho>.<componente>.<membro>;

import static <caminho>.<componente>.*;

Page 15: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.5 – ImportacaoEstatica.java� Importações estáticas:

� Todos os membros da classe Math.

� Métodos utilizados da classe javax.swing.JOptionPane.

� Método main( )� Solicitar um número decimal.

� Calcular seu seno e seu cosseno.

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 16: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

ForEach

� A partir do Java 5 – JSE 1.5 (2005)

� Objetivo: facilitar o percurso por um vetor ou coleção

� Dispensa o contador

� Sintaxe:

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Sintaxe:

for (<tipo> <nome> : <vetor/coleção>) {

}

Page 17: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.6 – CadastroAmigos.java� Classe Amigo

� Atributos nome e fone.

� Construtor: captar dados e inicializar atributos.

� toString( ): <nome> - <fone>

� Classe CadastroAmigos: método main( )� Vetor com capacidade para 20 amigos

� Laço for: permitir o registro de até 20 amigos.

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Laço ForEach: recuperar a lista de amigos cadastrados.

Page 18: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Autoboxing

� A partir do Java 5 – JSE 1.5 (2005)

� Objetivo: automatizar encapsulamento de tipos primitivos

� Classes empacotadoras ou classes-invólucro

� boolean: java.lang.Boolean

char: java.lang.Character

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� char: java.lang.Character

� byte: java.lang.Byte

� short: java.lang.Short

� int: java.lang.Integer

� long: java.lang.Long

� float: java.lang.Float

� double: java.lang.Double

Page 19: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Autoboxing

� Procedimento anterior:

int numero = 1500;

Integer objeto = new Integer( numero );

� Procedimento atual:

int numero = 1500;

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

int numero = 1500;

Integer objeto = numero;

Page 20: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Autoboxing

� Procedimento anterior:

Integer objeto = new Integer( 1500 );

int numero = objeto.intValue();

� Procedimento atual:

Integer objeto = 1500;

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Integer objeto = 1500;

int numero = objeto;

Page 21: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

VarArgs

� A partir do Java 5 – JSE 1.5 (2005)

� Objetivo: permitir a invocação de métodos com número variável de argumentos.

� Sintaxe:

[encapsulamento] <retorno> <nome>(<tipo>... <nome>) {

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

[encapsulamento] <retorno> <nome>(<tipo>... <nome>) {

}

Page 22: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.7 – Varargs.java� calcularMedia( )

� Método estático

� Parâmetro notas: número variável de valores

� ForEach para somar as notas

� Método main( )� Solicitar três notas

� Calcular a média das duas primeiras

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Calcular a média das três

Page 23: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Enumerações

� A partir do Java 5 – JSE 1.5 (2005)

� É um novo tipo.

� São manipulados via referências.

� Declaração:

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Declaração:� Como atributos de classes

� Em arquivo distinto

Page 24: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Enumerações

� É um conjunto de constantes.� Todas estáticas

� Podem especificar argumentos (valores para o construtor)

� Membros suportados:� Atributos

� Construtores

� Métodos

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Métodos

� Instanciação:� Uma instância sempre será uma de suas constantes.

� Procedimento: atribuir uma constante a uma referência.

� Construtores públicos não são permitidos.

Page 25: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Enumerações

� Sintaxe Geral:

[encapsulamento] enum <nome> {

<constantes>;

[atributos]

[construtores]

[métodos]

}

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

}

� As constantes devem ser separadas por vírgulas.

� Se houver argumentos, especificá-los entre parênteses.

Page 26: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.8 – SorteioCaractere.java� Enumeração TipoCaractere

� Atributo da classe

� Constantes: NUMERO, LETRA_MAIUSCULA, LETRA_MINUSCULA, OUTRO

� Método main( )� Sortear um número: de 0 a 150

� Converter em caractere

� Criar referência para a enumeração: TipoCaractere tipo

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Criar referência para a enumeração: TipoCaractere tipo

� Atribuir-lhe uma das constantes com base no caractere sorteado

� Utilizar estrutura switch para mapear a referência para um texto descritivo: “Número”, “Letra maiúscula” (65-90), “Letra minúscula” (97-122) ou “Caractere especial”.

Page 27: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 28: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.9 – Meses.java

� Código 17.10 – Revista.java

� Código 17.11 – CadastroRevistas.java� Permitir o cadastro de até 20 revistas

� Listar as revistas cadastradas

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 29: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Métodos Genéricos

� A partir do Java 5 – JSE 1.5 (2005)

� Métodos que podem ser invocados com argumentos de diferentes tipos.

� Parâmetros de tipo:� Declarados em uma seção própria

� Entre colchetes angulares

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Entre colchetes angulares

� Antes do retorno

� Letras maiúsculas (convenção)

� Podem ser utilizados como:� Tipo de retorno do método

� Tipo dos parâmetros do método

� Tipo de variáveis locais

Page 30: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Métodos Genéricos

� Exemplo:

public <X,Y> int contarCaracteres(X obj1, Y obj2) {return obj1.toString().length() + obj2.toString().length();}

int i = 0;i = contarCaracteres("Java",12);

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

i = contarCaracteres("Java",12);System.out.println(i);i = contarCaracteres(5.67,"JSE");System.out.println(i);i = contarCaracteres(5.67,1500);System.out.println(i);i = contarCaracteres("Java","JSE 5");System.out.println(i);i = contarCaracteres("Java",Meses.AGOSTO);System.out.println(i);

Page 31: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.12 – MetodoGenerico.java� exibirObjeto( )

� Método estático e genérico: parâmetro de tipo “O”

� Produzir uma mensagem com o nome da classe e a representação textual de um objeto especificado.

� main( )� Invocar o método exibirObjeto( ) com argumentos de diferentes tipos: Integer, Double, Character e String

� Sortear os três primeiros argumentos

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Sortear os três primeiros argumentos

Page 32: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

� Código 17.13 – MenorNumero.java� localizarMenor( )

� Método estático e genérico: parâmetro de tipo “L” que deve ser uma instância de Number

� Receber um vetor de números de qualquer tipo e retornar o menor.

� main( )� Invocar o método locallizarMenor( ) sobre vetores de números inteiros e de números decimais e exibir o retorno produzido

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 33: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Classes Genéricas

� A partir do Java 5 – JSE 1.5 (2005)

� São classes parametrizadas.� Contém uma seção de parâmetros de tipo após seu nome

� Na sua instanciação, especificar um valor para cada parâmetro de tipo (valor omitido = Object assumido)

� Objetivos:

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Objetivos:� Reduzir a redundância de código.

� Desenvolver componentes reutilizáveis.

� Ter segurança de tipo em tempo de compilação.

Page 34: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 35: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Estudo de Caso

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 36: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 1

� Insira comentários de documentação em todas as classes que foram escritas para compor o último exemplo apresentado.

� Esse exemplo tratou do uso de classes genéricas e o foi composto pelas classes VetorObjetos, ListaCompras, Produto e ListaProdutos.

� Insira comentários de documentação para todos os atributos, construtores e métodos dessas classes.

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

construtores e métodos dessas classes.

� Depois disso, utilize o javadoc para gerar os arquivos HTML que comporão a documentação completa deste exemplo.

Page 37: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 2

� Altere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos.

� Além disso, declare o vetor que abrigará as instâncias da classe Amigo como um atributo da classe CadastroAmigos e transfira todas as instruções que realiza o cadastro dos amigos para um método chamado realizarCadastros( ).

� Inclua apenas uma instrução em seu método main( ), que crie

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Inclua apenas uma instrução em seu método main( ), que crie uma instância anônima da classe CadastroAmigos e que invoque o método realizarCadastros( ) da mesma.

� A figura do slide seguinte apresenta como deverá ficar a estrutura das classes Amigo e CadastroAmigos após você ter realizado todos estes ajustes.

Page 38: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 2

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 39: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 3

� Crie um aplicativo, chamado CalculoRaiz, que permita a realização do cálculo da raiz quadrada de qualquer número informado.� Este aplicativo deve solicitar o número através de um diálogo de entrada e deve exibir o resultado através de outro diálogo.

� A figura do slide seguinte ilustra como devem ser apresentados estes dois diálogos.

� Este aplicativo deve permitir que seja realizado uma quantidade indefinida de cálculos e só deve ser encerrado quando o primeiro

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

indefinida de cálculos e só deve ser encerrado quando o primeiro destes diálogos for cancelado.

� Faça a importação estática do método showInputDialog( ) e do método showMessageDialog( ) da classe javax.swing.JOptionPane e os utilize para produzir os dois diálogos supracitados.

� Também faça a importação estática do método sqrt( ) da classe Math e o utilize para realizar o cálculo da raiz quadrada.

Page 40: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 3

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 41: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 4

� Crie um aplicativo, chamado GeradorNumeros, que crie um vetor capaz de armazenar números inteiros e que grave um número em cada posição deste vetor.� A definição do tamanho deste vetor deve ser sorteada pelo aplicativo e deve variar de 5 a 10 posições.

� O número a ser gravado em cada posição deste vetor também deve ser sorteado pelo aplicativo e não deve ser inferior a 1000 ou superior a 1500.

� Ao final, utilize um laço ForEach para percorrer este vetor e

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Ao final, utilize um laço ForEach para percorrer este vetor e recuperar todos os números que foram armazenados nele.

� Depois, exiba estes números através de uma mensagem como aquela que é apresentada na figura abaixo.

Page 42: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 5

� Crie uma nova classe, chamada RegistroNotas, de acordo com a representação gráfica do slide seguinte.

� O método avaliar( ) desta classe deve calcular a média de um conjunto de notas e definir se o aluno está aprovado ou reprovado.� Se ele estiver aprovado, o retorno produzido deve ser true.

� Se ele estiver reprovado, o retorno produzido deve ser false.

� O parâmetro chamado minimo indica a média mínima que deve

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� O parâmetro chamado minimo indica a média mínima que deve ser obtida para a aprovação.

� O parâmetro chamado notas representa o conjunto de notas obtidas pelo aluno.

Page 43: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 5

� O método main( ) dessa classe deve realizar a interação do aplicativo com o usuário.� Primeiro, ele deve solicitar a média mínima que deve ser obtida pelos alunos para que sejam aprovados.

� Em seguida, deve solicitar quantas avaliações foram realizadas no período letivo em questão.

� Depois, deve solicitar a nota obtida pelo aluno em cada uma das avaliações.

� Ao final, deve exibir uma mensagem indicando se o aluno está

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Ao final, deve exibir uma mensagem indicando se o aluno está aprovado ou reprovado.

Page 44: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 6

� Crie uma nova enumeração, chamada EstadoCivil, de acordo com a representação gráfica apresentada na figura abaixo.

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Page 45: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 7

� Crie uma nova classe genérica, chamada VetorNumeros, de acordo com a representação gráfica do slide seguinte.

� O parâmetro de tipo desta classe, chamado E, só deve aceitar instâncias da classe java.lang.Number.

� O atributo chamado numeros será um vetor do tipo especificado pelo parâmetro de tipo e abrigará um conjunto de números.

� Utilize o atributo quantidade para controlar a quantidade de

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

� Utilize o atributo quantidade para controlar a quantidade de números gravados neste vetor.

� O parâmetro do construtor será utilizado para definir o tamanho deste vetor e, por conseguinte, a quantidade máxima de números que ele poderá receber.

Page 46: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Exercício 7

� O método incluirNumero( ) deve receber um número qualquer e gravá-lo no vetor.

� O método calcularMedia( ) deve somar todos os números que encontram-se neste vetor e retornar a sua média.

� O método encontrarMenor( ) deve percorrer o vetor e retornar o menor valor encontrado.

� O método encontrarMaior( ), por outro lado, deve percorrer este vetor e retornar o maior número encontrado.

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

este vetor e retornar o maior número encontrado.

Page 47: Capítulo 17 - ruirossi.pro.brAltere o arquivo CadastroAmigos.java de modo que a classe Amigo passe a ser uma classe interna da classe CadastroAmigos. Além disso, declare o vetor

Contato

Com o autor:

Rui Rossi dos Santos

E-mail: [email protected]

Web Site: http://www.ruirossi.pro.br

Com a editora:

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Com a editora:

Editora NovaTerra

E-mail Geral: [email protected]

E-mail Comercial: [email protected]

Web Site: http://www.editoranovaterra.com.br