capítulo 12 - rui rossi · charc = s.charat(0);...} rui rossi dos santos programação de...

53
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Cap Cap í í tulo 12 tulo 12 A Anatomia das Classes A Anatomia das Classes

Upload: others

Post on 28-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

CapCapíítulo 12tulo 12A Anatomia das ClassesA Anatomia das Classes

Page 2: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Objetivos do Capítulo

� Relacionar cada um dos elementos constitutivos das classes: os atributos, os construtores e os métodos.

� Apresentar a sintaxe utilizada para a declaração de classes e para a instanciação de objetos.

� Indicar como são declarados os atributos de uma classe e como podem ser empregados para o armazenamento de dados dos objetos que a ela pertencem.

� Analisar o papel dos construtores para a instanciação de objetos e para a inicialização de seus atributos.

� Apontar como as ações e serviços de um conjunto de objetos podem ser implementados na forma de métodos em sua classe.

Page 3: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Introdução

� Membros das classes:� Atributos

� Construtores

� Métodos

Page 4: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Declaração de Classes

� Sintaxe

[public] [abstract|final] class <NomeDaClasse> {

}

� Exemplo:

public class Professor {

}

Page 5: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Instanciação de Classes

� Significado:� Criação de objetos

� Declaração de objetos: sintaxe

<NomeDaClasse> <NomeDoObjeto>;

� Declaração de objetos: exemplos

Professor professor_augusto;

Professor professor_cezar;

Page 6: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Instanciação de Classes

� Instanciação de classes: sintaxe

<nomeDoObjeto> = new <construtor>([argumentos]);

� Instanciação de classes: exemplos

professor_augusto = new Professor();

professor_cezar = new Professor(“Cezar Botelho”);

� Declaração e instanciação de classes: exemplos

Professor professor_augusto = new Professor();

Professor professor_cezar = new Professor(“Cezar Botelho”);

Page 7: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Atributos

� Definição:� Dados membro

� Variáveis de instância

� Características dos objetos

� Declarados no corpo da classe

� Sintaxe:

[encapsulamento] <tipo> <nomeDoAtributo>;

Page 8: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Atributos

� Exemplos:

public class Endereco {

public byte tipo;

public String logradouro;

public int numero;

public String complemento;

public String bairro;

public String cep;

public String cidade;

public String estado;

}

Page 9: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Atributos

� Inicialização:

Endereco endereco_residencial = new Endereco( );

endereco_residencial.tipo = 1;

endereco_residencial.logradouro = “Rua XV de Novembro”;

endereco_residencial.numero = 1556;

endereco_residencial.complemento = “Apartamento 112”;

endereco_residencial.bairro = “Centro”;

endereco_residencial.cep = “85903-550”;

endereco_residencial.cidade = “Toledo”;

endereco_residencial.estado = “Paraná”;

Page 10: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Atributos

� Código 12.1 – Cliente.java� Implemente a classe Cliente conforme representação.

� Código 12.2 – TestaCliente.java� Implemente a classe TestaCliente conforme representação.

� Implemente o seguinte procedimento no seu método main( ):� Instancie dois objetos da classe Cliente.

� Armazene um dado em cada atributo destes objetos.

� Recupere e exiba o conteúdo dos atributos destes objetos.

Page 11: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Construtores

� Finalidade:� Instanciação de classes.

� Inicialização de atributos.

� Sintaxe:

public <NomeDoConstrutor>([parâmetros]) {

}

Page 12: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Construtores

� Código 12.3 – Gato.java� Implemente a classe Gato conforme representação.

� O construtor deve inicializar todos os atributos.

� Código 12.4 – TestaGato.java� Implemente a classe TestaGato conforme representação.

� Implemente o seguinte procedimento no seu método main( ):� Instancie um objeto da classe Gato.

� Recupere e exiba o conteúdo dos atributos deste objeto.

Page 13: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Construtores

Page 14: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Construtores

� Código 12.5 – Peixe.java� Implemente a classe Peixe conforme representação.

� Os dois construtores devem inicializar os atributos.

� Código 12.6 – TestaPeixe.java� Implemente a classe TestaPeixe conforme representação.

� Implemente o seguinte procedimento no seu método main( ):� Instancie um objeto da classe Peixe utilizando seu construtor padrão.

� Armazene um dado em cada atributo deste objeto.

� Instancie um objeto da classe peixe com seu construtor alternativo.

� Recupere e exiba o conteúdo dos atributos do primeiro objeto.

� Recupere e exiba o conteúdo dos atributos do segundo objeto.

Page 15: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Construtores

Page 16: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Métodos

� Definição:� Tarefas realizadas pelos objetos.

� Serviços prestados pelos objetos.

� Operações realizadas com os objetos no interior do programa.

� Sintaxe:

[encapsulamento] <tipo> <identificador>([parâmetros]) {

}

Page 17: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Métodos

� Exemplos:

public int some(int primeiroValor, int segundoValor) {

int resultado;

resultado = primeiroValor + segundoValor;

return resultado;

}

public void exibir(String texto) {

JOptionPane.showMessageDialog(null,texto);

}

Page 18: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Métodos

� Código 12.7 – Matematico.java� Implemente a classe Matematico conforme representação.

� Especificação do método fatorial( ):� Parâmetro valor: número inteiro igual ou inferior a 127.

� Retorno: o fatorial deste número

�Obs.: o fatorial de zero é um.

Page 19: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Métodos

� Código 12.8 – TestaMatematico.java� Implemente a classe TestaMatematico conforme representação.

� Implemente o seguinte procedimento no seu método main( ):� Peça ao usuário que informe dois números.

o Se ocorrer uma NumberFormatException, exiba uma mensagem e encerre o programa.

� Crie uma instância da classe Matematico.

�Utilize os métodos deste objeto para realizar os seguintes cálculos com os dois valores informados:o Some os dois valores.

o Subtraia o segundo do primeiro.

o Multiplique os dois valores.

o Divida o primeiro pelo segundo.

o Calcule o fatorial de ambos.

� Exiba uma mensagem com todos os resultados.

Page 20: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Métodos

Page 21: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Métodos

Page 22: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Unindo as Partes

Page 23: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Unindo as Partes

� Código 12.9 – Estado.java� Implemente a classe Estado conforme representação.

� Especificação dos métodos:� exibirDados( ): deve exibir o conteúdo dos dois atributos, separados por um hífen, através de um diálogo gráfico. A sigla deve ser apresentada em maiúsculo.

� recuperarDados( ): deve retornar uma string com o conteúdo dos dois atributos, separados por um hífen. A sigla deve ser apresentada em maiúsculo.

� validarNome( ): deve avaliar se seu parâmetro contém um valor válido para ser armazenado no atributo nome da classe. Ele só será válido se tiver de 2 a 50 caracteres. Este método deve retornar true para indicar que o dado é válido e retornar false para indicar que o dado éinválido.

� validarSigla( ): deve avaliar se seu parâmetro contém um valor válido para ser armazenado no atributo sigla da classe. Ele só será válido se tiver de 2 caracteres. Este método deve retornar true para indicar que o dado é válido e retornar false para indicar que o dado é inválido.

Page 24: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Unindo as Partes

� Código 12.10 – CadastroEstado.java� Implemente a classe CadastroEstado conforme representação.

� Implemente o seguinte procedimento em seu método main( ):� Instancie um objeto da classe Estado.

� Solicite ao usuário o nome e a sigla do estado a ser cadastrado e grave-os nos atributos correspondentes deste objeto.

� Se o usuário cancelar um destes diálogos, encerre o aplicativo.

�Utilize o método exibirDados( ) para exibir o conteúdo dos atributos deste objeto.

Page 25: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Unindo as Partes

Page 26: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Unindo as Partes

� Código 12.11 – CadastroEstados.java� Implemente a classe CadastroEstados conforme representação.

� Implemente o seguinte procedimento em seu método main( ):� Crie um vetor capaz de armazenar até 26 objetos da classe Estado.

� Permita que o usuário registre os dados de até 26 estados.o Grave os dados de cada estado em um objeto da classe Estado.

o Grave todos os objetos criados no vetor supracitado.

� Ao final, apresente um relatório contendo os dados de todos os estados que foram cadastrados.o Recupere os objetos que foram gravados no vetor.

o Utilize o método recuperarDados( ) destes objetos para obter o conteúdo de seus atributos.

Page 27: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Unindo as Partes

Page 28: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Unindo as Partes

� Código 12.12 – CadastroEstadosValidacao.java� Implemente a classe CadastroEstadosValidacao.

� Implemente o seguinte procedimento em seu método main( ):� Crie um vetor capaz de armazenar até 26 objetos da classe Estado.

� Permita que o usuário registre os dados de até 26 estados.o Grave os dados de cada estado em um objeto da classe Estado.

o Grave todos os objetos criados no vetor supracitado.

� Se o usuário informar um dado inválido, solicite-o novamente.o Realize a validação do nome com o método validarNome( ) da classe Estado.

o Realize a validação da sigla com o método validarSigla( ) da classe Estado.

� Ao final, apresente um relatório contendo os dados de todos os estados que foram cadastrados.

o Recupere os objetos que foram gravados no vetor.

o Utilize o método recuperarDados( ) destes objetos para obter o conteúdo de seus atributos.

Page 29: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Unindo as Partes

Page 30: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 1

� Crie um novo aplicativo que capte o nome completo de pessoas e indique quais são as suas iniciais.

� Este aplicativo deve ser composto por duas classes: Pessoa e GeradorIniciais.

� Implemente estas classes de acordo com a representação a seguir.

Page 31: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 1

� Especificação dos métodos da classe Pessoa.� validarNome( ): este método deve avaliar se determinada string éum nome completo válido.�O nome só é válido quando:

o Possui de 5 a 50 caracteres.

o É composto de duas partes.

o Cada parte contém pelo menos 2 caracteres.

� Parâmetros:o nome: uma string contendo o nome a ser avaliado.

� Retorno: true quando o dado é válido e false quando o dado é inválido.

� gerarIniciais( ): este método deve produzir a string correspondente às iniciais do nome de uma pessoa.� Este método deve utilizar o conteúdo do atributo nome como valor de entrada para a realização desta operação.

� As iniciais devem ser compostas apenas por letras maiúsculas (A-Z).

� Retorno: uma string com as iniciais da pessoa.

Page 32: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 1

� Dica para implementação dos métodos da classe Pessoa.� Utilize o método split( ) da classe String sempre que precisar desmembrar o nome completo em suas partes.

String str = “Rui Rossi dos Santos”;

String[ ] partes = str.split(“ ”);

� Para testar se este nome contém menos de duas partes:

if (partes.length < 2) ... ;

� Para recuperar o primeiro caractere de cada parte:

for (String s : partes) {

char c = s.charAt(0);

...

}

Page 33: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 1

� O método main( ) da classe GeradorIniciais deve captar o nome completo de pessoas e indicar quais são as suas iniciais.� Fluxo normal:

�O usuário informa o nome completo de uma pessoa.

�O aplicativo exibe as iniciais deste nome.

�O aplicativo solicita outro nome.

� Tratamento de fluxos excepcionais:�O nome informado não é válido.

o Exibir mensagem de erro: “nome inválido!”.

o Solicitar novamente o nome.

�O usuário cancela o diálogo de entrada onde deveria informar o nome.o O aplicativo é encerrado.

� Utilize uma instância da classe Pessoa para validar e armazenar o nome informado e para gerar as iniciais correspondentes a ele.

Page 34: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 1

Page 35: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 2

� Crie um novo aplicativo que calcule a área de um círculo com base em sua circunferência.

� Este aplicativo deve ser composto por duas classes: Circulo e AreaCirculo.

� Implemente estas classes de acordo com a representação a seguir.

Page 36: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 2

� Especificação dos métodos da classe Circulo.� validarCircunferencia( ): este método deve avaliar se determinada string é uma circunferência válida.� A circunferência só é válida quando é um número maior que zero.

� Parâmetros:o cf: uma string contendo a circunferência de um círculo.

� Retorno: true quando o dado é válido e false quando o dado é inválido.

� Exceções a serem tratadas: RuntimeException.

� calcularArea( ): este método deve calcular a área de um círculo com base em sua circunferência.� Este método deve utilizar o conteúdo do atributo circunferencia como valor de entrada para a realização desta operação.

� Passos para a realização do cálculo:o Divida o valor da circunferência do círculo pelo valor de PI e obtenha o diâmetro deste círculo.

o Divida o diâmetro do círculo por 2 e obtenha o seu raio.

o Eleve o raio do círculo à segunda potência e multiplique este resultado pelo valor de PI para obter sua área.

� Retorno: a área do círculo.

Page 37: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 2

� O método main( ) da classe AreaCirculo deve captar a circunferência de um círculo e indicar qual é sua área.� Fluxo normal:

�O usuário informa a circunferência de um círculo.

�O aplicativo exibe a área deste círculo.

�O aplicativo solicita a circunferência de outro círculo.

� Tratamento de fluxos excepcionais:� A circunferência informada não é válida.

o Exibir mensagem de erro: “Dado inválido!”.

o Solicitar novamente a circunferência.

�O usuário cancela o diálogo de entrada.o O aplicativo é encerrado.

� Utilize uma instância da classe Circulo para validar e armazenara circunferência informada e para calcular a sua área.

Page 38: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 2

Page 39: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 3

� Crie um novo aplicativo que capte o nome, peso e altura de pacientes e que calcule seu IMC (Índice de Massa Corporal).

� Este aplicativo deve ser composto por duas classes: Paciente e TesteIMC.

� Implemente estas classes de acordo com a representação a seguir.

Page 40: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 3

� Especificação dos métodos da classe Paciente.� validarNome( ): deve avaliar se determinado nome é válido.

�O nome só é válido se tiver de 2 a 50 caracteres.

� validarPeso( ): deve avaliar se determinada string contém um peso válido.�O peso só é válido se for um número fracionário maior que 0,0 e menor ou igual a 350,0.

� Exceções a serem tratadas: RuntimeException.

� validarAltura( ): deve avaliar se determinada string contém uma altura válida.� A altura só é válida se for um número fracionário maior que 0,0 e menor ou igual a 2,5.

� Exceções a serem tratadas: RuntimeException.

� calcularIMC( ): este método deve calcular o IMC de um paciente.� Este método deve utilizar o conteúdo dos atributos peso e altura como valores de entrada para a realização desta operação.

� Fórmula para a realização do cálculo:IMC = Peso / Altura2

� Retorno: o IMC do paciente.

Page 41: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 3

� Especificação dos métodos da classe Paciente.� classificarIMC( ): este método deve analisar o IMC do paciente e indicar a que categoria ele pertence.�Utilize o método calcularIMC( ) para implementar este método.

� Retorno: a categoria a que pertence o IMC do paciente.

� recuperarResultado( ): este método deve retornar uma string contendo todos os dados do paciente.� Cada dado deve ser apresentado em uma linha distinta.

�Os dados devem ser listados na seguinte ordem: nome, peso, altura, IMC e categoria.

IMC Categoria

Até 18,4 Abaixo do peso

De 18,5 a 24,9 Peso normal

De 25,0 a 29,9 Sobrepeso

De 30,0 a 34,9 Obesidade Grau I

De 35,0 a 39,9 Obesidade Grau II

Acima de 40,0 Obesidade Grau III

Page 42: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 3

� O método main( ) da classe TesteIMC deve captar o nome, o peso e a altura de um paciente e exibir o resultado de seu teste de IMC.� Fluxo normal:

�O usuário informa o nome do paciente.

�O usuário informa o peso do paciente.

�O usuário informa a altura do paciente.

�O aplicativo exibe o resultado de seu teste de IMC.

�O aplicativo inicia outro teste de IMC.

� Tratamento de fluxos excepcionais:�O usuário cancela um diálogo de entrada.

o O aplicativo é encerrado.

�O nome informado não é válido.o Exibir mensagem de erro: “Nome inválido!”.

o Solicitar novamente o nome.

�O peso informado não é válido.o Exibir mensagem de erro: “Peso inválido!”.

o Solicitar novamente o peso.

Page 43: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 3

� Método main( ) da classe TesteIMC� Tratamento de fluxos excepcionais:

� A altura informada não é válida.o Exibir mensagem de erro: “Altura inválida!”.

o Solicitar novamente a altura.

� Utilize uma instância da classe Paciente para validar e armazenar o nome, o peso e a altura informados e para realizar oteste de IMC e exibir o seu resultado.

Page 44: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 3

Page 45: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 4

� Crie um novo aplicativo que realize o cadastro de clientes.

� Este aplicativo deve ser composto por duas classes: Cliente e CadastroCliente.

� Implemente estas classes de acordo com a representação a seguir.

Page 46: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 4

� Especificação dos métodos da classe Cliente.� recuperarDados( ): este método deve retornar uma string contendo todos os dados do cliente.�Os dados devem ser apresentados separados por hífens.

� validarNome( ): deve avaliar se determinado nome é válido.�O nome só é válido se tiver de 2 a 50 caracteres.

� Só pode conter letraso As letras podem ser maiúsculas (A-Z) ou minúsculas (a-z)

o Não pode conter nenhuma acentuação

� validarTelefone( ): deve avaliar se determinado telefone é válido.� Só é válido se tiver 10 dígitos (Ex.: 4532789553)

� validarEmail( ): deve avaliar se determinado e-mail é válido.� Deve conter de 5 a 50 caracteres.

� Deve conter um único símbolo da arroba (@).

� A arroba deve ser precedida por pelo menos 2 caracteres.

� Deve haver pelo menos 2 caracteres após a arroba.

� validarCpf( ): deve avaliar se determinado CPF é válido.� Só é válido se tiver 11 dígitos (Ex.: 87693288512)

Page 47: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 4

� O método main( ) da classe CadastroCliente deve captar os dados de cadastrais de clientes e armazená-los em um vetor de objetos.� Este aplicativo deve ser capaz de armazenar até 32767 cadastros de clientes.

� Se um dado informado for inválido, o aplicativo deve exibir uma mensagem de erro e solicitá-lo novamente.

� Ao final, o aplicativo deve exibir uma mensagem contendo os dados cadastrais que foram gravados.

� Se o usuário cancelar qualquer diálogo de entrada, somente os dados dos cadastros que já haviam sido concluídos devem ser exibidos.

Page 48: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 4

Page 49: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 5

� Crie um novo aplicativo que realize o cadastro de produtos.

� Este aplicativo deve ser composto por duas classes: Produto e CadastroProduto.

� Implemente estas classes de acordo com a representação a seguir.

Page 50: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 5

� Especificação dos métodos da classe Produto.� recuperarDados( ): deve retornar uma string contendo todos os dados do produto.�Os dados devem ser apresentados separados por hífens.

�O preço deve receber a formatação de um valor monetário.

� validarCodigo( ): avalia se determinado código é válido.� Deve ser um número inteiro maior que zero.

� Exceções a serem tratadas: RuntimeException.

� validarDescricao( ): avalia se determinada descrição é válida.� Deve conter de 1 a 50 caracteres.

� validarPreco( ): avalia se determinado preço é válido.� Deve ser um número fracionário maior que zero.

� Exceções a serem tratadas: RuntimeException.

Page 51: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 5

� O método main( ) da classe CadastroProduto deve captar os dados de cadastrais de produtos e armazená-los em um vetor de objetos.� Este aplicativo deve ser capaz de armazenar os cadastros de até2.000.000 produtos.

� Se um dado informado for inválido, o aplicativo deve exibir uma mensagem de erro e solicitá-lo novamente.

� Ao final, o aplicativo deve exibir uma mensagem contendo os dados cadastrais que foram gravados.

� Se o usuário cancelar qualquer diálogo de entrada, somente os dados dos cadastros que já haviam sido concluídos devem ser exibidos.

Page 52: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Exercício 5

Page 53: Capítulo 12 - Rui Rossi · charc = s.charAt(0);...} Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Exercício 1 O método main( ) da classe GeradorIniciaisdeve

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

Contato

Com o autor:

Rui Rossi dos Santos

E-mail: [email protected]

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

Com a editora:

Editora NovaTerra

Telefone: (21) 2218-5314

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