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

Upload: others

Post on 04-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

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