lista_de_exercícios - java

39
Lista de Exercícios - Java 1. Por meio da abstração crie uma classe chamada Carro, adicione dois atributos chamados: modelo e cor. Com uma classe de Teste, utilizando o método main, atribua e obtenha valores utilizando a classe Carro. 2. Agrupe em classes os objetos abaixo: Avião elefante computador tigre calculadora motocicleta formiga 3. Crie uma classe de boas vindas que exiba seu nome, RM, data de nascimento e curso. 4. Digitar o código abaixo, salvar com o nome Erro.java, compilar e corrigir os erros: Class errado { PublicStatic Void Main (string a()) sistem.println('Existem erros.') } } 5. Complete as lacunas sobre o ambiente Java: a) O comando ___ do JDK executa um aplicativo java. b) O comando ___ do JDK compila um aplicativo java. c) Um código-fonte Java deve terminar com a extensão de arquivo ________. d) Quando um programa Java é compilado, o arquivo produzido pelo compilador termina com a extensão de arquivo _________ . e) O arquivo produzido pelo compilador Java contém _________ que são executados pela Java Virtual Machine. 6. Qual o objetivo do método main?

Upload: ricardo-toscano

Post on 28-Nov-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lista_de_Exercícios - Java

Lista de Exercícios - Java

1. Por meio da abstração crie uma classe chamada Carro, adicione dois atributos chamados: modelo e cor. Com uma classe de Teste, utilizando o método main, atribua e obtenha valores utilizando a classe Carro.

2. Agrupe em classes os objetos abaixo:

Avião elefante computador tigre calculadora motocicleta formiga

3. Crie uma classe de boas vindas que exiba seu nome, RM, data de nascimento e curso.

4. Digitar o código abaixo, salvar com o nome Erro.java, compilar e corrigir os erros:

Class errado {PublicStatic Void Main (string a())

sistem.println('Existem erros.')}

}

5. Complete as lacunas sobre o ambiente Java:

a) O comando ___ do JDK executa um aplicativo java.

b) O comando ___ do JDK compila um aplicativo java.

c) Um código-fonte Java deve terminar com a extensão de arquivo ________.

d) Quando um programa Java é compilado, o arquivo produzido pelo compilador termina com a extensão de arquivo _________ .

e) O arquivo produzido pelo compilador Java contém _________ que são executados pela Java Virtual Machine.

6. Qual o objetivo do método main?

7. Crie uma classe que permita instanciar três cursos da FIAP. Cada curso deve ter pelo menos três características. Após a instanciação, exiba os dados dos três objetos.

8. Defina o que é classe, atributo e método.

Page 2: Lista_de_Exercícios - Java

9. O que são tipos primitivos?

10. Quais são os tipos de dados primitivos em Java?

11. Declare e atribua valores para variáveis dos tipos primitivos: char, int, float, long e double.

12. O que são palavras reservadas? Dê exemplos

13. Quais das seguintes declarações são válidas? (Marque todas as corretas)

a. int $x;b. int 123c. int _123d. int #dime. int %percent;f. int *divide;

14. Quais das palavras abaixo, não são palavras reservadas na Linguagem Java?

a. classb. voidc. shortsd. publice. intf. staticg. floath. cari. rollbackj. returnk. long

15. Crie uma classe chamada Calculadora. Para esta classe:

a. Crie um método chamado somar, com 2 parâmetros de entrada, e um retorno. Esses parâmetros deverão ser somados (o primeiro mais o segundo) no bloco de instruções e o total da adição deverá ser retornado.

b. Crie um método chamado subtrair, com 2 parâmetros de entrada, e um retorno. Esses parâmetros deverão ser subtraídos (o primeiro menos o segundo) no bloco de instruções e o total da subtração deverá ser retornado.

c. Crie uma classe de teste para os métodos somar e subtrair da classe Calculadora e imprima os resultados.

Page 3: Lista_de_Exercícios - Java

16. Crie uma classe chamada Salario. Para esta classe:

a. Crie um atributo de classe chamado valorBruto

b. Crie um método para atribuir valor ao atributo de classe valorBruto, chamado atrubuirValorBruto.

c. Crie um método para obter o valor do atributo de classe valorBruto, chamado obterValorBruto.

d. Crie um método chamado calcularINSS, que fará o cálculo do INSS, com base no salário bruto armazenado no atributo de classe valorBruto, e retornará o valor do INSS. Para calcular o INSS utilize a fórmula: descontoINSS = (valorBruto*20) / 100.

e. Crie um método chamado obterValorLiquido, que com base no salário bruto armazenado no atributo de classe valorBruto, retornará o valor líquido do salário. Para calcular o salário líquido utilize a fórmula: salarioLiquido = valorBruto –descontoINSS.

f. Crie uma classe de Teste para testar os métodos atribuirValorBruto, calcularINSS e obterValorLiquido e imprimir o valor do salário bruto, o desconto de INSS e o valor líquido.

17. Crie uma classe chamada CalculadoraFinanceira. Para esta classe:

a. Crie um método chamado calcularJurosSimples, com 3 parâmetros de entrada e um retorno. Esses parâmetros serão o capital, a taxa de juros e o período. No bloco de instruções, efetue o cálculo do juros simples e retorne o resultado. Para o cálculo do juros simples utilize a fórmula: montante = capital * ( 1+taxa * período).

b. Crie um método chamado calcularJurosCompostos, com 3 parâmetros de entrada e um retorno. Esses parâmetros serão o capital, a taxa de juros e o período. No loco de instruções, efetue o cálculo do juros compostos e retorne o resultado. Para o cálculo do juros compostos utilize a fórmula: montante = capital * ((1+ taxa) ^ período).

c. Crie uma classe de Teste para testar os métodos calcularJurosSimples e calcularJurosCompostos e imprimir o resultado.

Obs.: Para fazer a exponenciação, utilize o método pow da classe java.lang.Math. Este método recebe dois parâmetros do tipo double e retorna o resultado do tipo double.

Exemplo: x ^ ydouble resultado = Math.pow(x, y).

Page 4: Lista_de_Exercícios - Java

18. Crie uma classe chamada ContaCorrente. Para esta classe:

a. Crie um atributo de classe chamado saldo.

b. Crie um método para atribuir valor ao saldo (atribuirSaldo).

c. Crie um método sacar, que receberá como parâmetro o valor a ser sacado e retornará o saldo restante.

d. Crie um método depositar, que receberá como parâmetro o valor a ser depositado e retornará o saldo atual.

e. Faça uma classe de teste para criar uma conta corrente, atribuir um saldo inicial e depois realizar um depósito e um saque e imprimir o valor do saldo.

19. Explique o que é uma variável de referência. Dê um exemplo de atribuição para uma variável de referência.

20. Para que serve o casting de tipos primitivos? Quando sua utilização é obrigatória?

Considerando o trecho de código abaixo, responda as questões de 21 a 23.

01 public static void main(String[] args) {02 String nome1 = "Pedro";03 String nome2 = "Pedro";04 String nome3 = new String("Pedro");05 String nome4 = nome3;06 boolean comparacao = false;0708 comparacao = nome1 == nome2;09 System.out.println(comparacao);1112 comparacao = nome1 == nome3;13 System.out.println(comparacao);1415 comparacao = nome3 == nome4;16 System.out.println(comparacao);17 }

21. O que será impresso na linha 09? Explique22. O que será impresso na linha 13? Explique23. O que será impresso na linha 16? Explique

Page 5: Lista_de_Exercícios - Java

24. Calcule a diferença de áreas existente entre um círculo e um quadrado. Para isso:

a. Crie uma classe chamada Circulo com um método calcularArea, que recebe como parâmetro o raio e retorna o valor da área. Para calcular o valor da área utilize a fórmula: Area = pi * r ^ 2

b. Crie uma classe chamada Quadrado com um método calcularArea, que recebe como parâmetro o lado e retorna o valor da área. Para calcular o valor da área utilize a fórmula: Area = lado * lado

c. Crie uma classe de Teste que, utilizando os métodos calcularArea das classesCirculo e Quadrado, calcule o valor da área abaixo (cinza), e imprima o resultado.

25. Calcule a média das notas de um aluno para uma determinada disciplina, considerando que um aluno possui apenas uma disciplina e que para esta disciplina foram realizadas 3 provas. Para isso:

a. Crie uma classe chamada Disciplina: Crie os atributos de classe nota1, nota2 e nota3. Crie métodos necessários para atribuir e obter valores para os atributos nota1,

nota2 e nota3. Crie um método chamado obterMedia, que fará o calculo da media das 3 notas

e retornará o valor da média.

b. Crie uma classe chamada Aluno: Crie os atributos disciplina (do tipo Disciplina) e nome. Crie os métodos necessários para atribuir e obter valores para o atributo

nome. Crie um método chamado atribuirNotas, que recebera como parâmetro as 3

notas e atribuirá essas notas aos atributos nota1, nota2 e nota3 (da classe Disciplina).

Crie um método chamado obterMedia, que retornará a media das notas do aluno.

c. Crie uma classe de Teste para testar a partir da classe Aluno e imprimir a mensagem: “O aluno <nome_do_aluno> obteve média <media>.”. Obs.: Não é necessário instanciar um objeto do tipo Disciplina na classe de Teste.

Page 6: Lista_de_Exercícios - Java

26. Escreva um programa JAVA para determinar o valor da seguinte expressão: R = x ^ y / (z ^ y + 2 ^ y), dados x = 231, y = 7, z = 23. Imprima a mensagem: “Resultado= <resultado>.”

27. Escreva um programa JAVA para transformar a string “Sunms” em “Sun Microsytems” usando apenas o método substring e concatenação de Strings.

O método substring da classe java.lang.String recebe dois parâmetros do tipo int(posição início e posição fim) e retorna um tipo String (trecho da String solicitada).

Exemplo:

String nomeCompleto = “João da Silva”;String nome = nomeCompleto.substring (0, 4);O valor de nome será “João”.

28. Informe o valor de x, considerando o valor inicial de x = 4, em todas as linhas abaixo:

a. x *= 2 + 5; x = x * (2+5) = 28b. x = x++; x = 4c. x = ++x; x = 5d. x += x; x = x + x = 8e. x += -x; x = x + -x = 0f. x -= x * 5; x = x - (x*5) = -16

29. Considerando o trecho de código abaixo, responda:

01 public class TesteConcatenacao {0203 public static void main(String[] args) {04 String a = "String";05 int b = 3;06 int c = 7;0708 System.out.println(a + b + c);09 System.out.println(a + (b + c));10 }11 }

O que será impresso na linha 08 e linha 09? Explique.

Page 7: Lista_de_Exercícios - Java

30. Localize na API a classe String. Cite três métodos desta classe.

31. Siga as instruções abaixo:

a. Crie uma classe chamada Livro com os seguintes atributos: ISBN, título original, título português, autor, quantidade páginas, edição e data de publicação.

b. Adicione na classe Livro os métodos atribuir e obter para cada atributo.

c. Adicione na classe Livro um método que retorne os campos: título original e título português concatenados.

d. Crie uma classe de Teste gerando dois livros e exibindo seus valores na tela.

32. Siga as instruções abaixo:

a. Crie uma classe chamada Consultor com os atributos do tipo String: nome e cargo e uma constante int chamada horaMês com valor de 160.

b. Adicione na classe Consultor um método chamado getValorMensal, com retorno double e com um parâmetro do tipo double chamado valorHora. Esse método deve retornar o parâmetro multiplicado pela constante hora mês.

c. Crie uma classe de Teste, e no método main instancie o objeto consultor, faça um cálculo de valor hora passando um valor e exiba na tela.

33. Qual a principal diferença entre os tipos primitivos e os tipos de referência em Java?

34. O que é um construtor de classe?

35. O que é um construtor padrão? Quais as suas características?

36. Para que serve a declaração package?

37. O que faz a declaração import?

38. Crie uma classe chamada Empregado, dentro da package com.fiap.dp:

a. Crie os atributos de classe nome, funcao e salario.

b. Crie um construtor de classe que receberá como parâmetros, o nome, função e salário do empregado.

c. Crie um método chamado aumentarSalario, que receberá como parâmetro o valor do aumento.

d. Crie uma classe de teste chamada TesteSalario na mesma package. Crie um objeto da classe Empregado que tenha como nome “João”, salário inicial de R$ 5.400,00 e função “Analista de Sistemas”, utilizando o construtor de classe criado no item b.

Page 8: Lista_de_Exercícios - Java

Imprima na tela o nome, a função e o salário, sabendo que este empregado recebeu um aumento salarial de R$ 600,00.

39. Crie uma classe chamada TrianguloRetangulo, em um package com.fiap.hipotenusa:

a. Crie os atributos de classe cateto1 e cateto2.

b. Declare o construtor padrão para a classe TrianguloRetangulo.

c. Crie um construtor de classe que receberá como parâmetros os catetos e atribuirá esses valores aos atributos de classe cateto1 e cateto2.

d. Crie métodos para atribuir e obter o valor dos atributos cateto1 e cateto2.

e. Crie um método chamado calcularHipotenusa, sem parâmetros de entrada para realizar o cálculo da hipotenusa e retornar o tamanho da hipotenusa.

f. Crie uma classe de teste chamada TesteTriangulo na mesma package. Crie 2 objetos: o primeiro utilizando o construtor padrão, com catetos de tamanho 5 e 10 e o segundo utilizando o construtor de classe criado no item e, com catetos de tamanho 4 e 5. Imprima o valor das hipotenusas.

Para efetuar o cálculo da hipotenusa, utilize a fórmula: hipotenusa ^ 2 = cateto1 ^ 2 + cateto2 ^ 2.

Para realizar a exponenciação, utilize o método pow da classe java.lang.Math.

Para realizar a raiz quadrada, utilize o método sqrt da classe java.lang.Math. Este método retorna a raiz quadrada do número informado como parâmetro (Tanto o parâmetro de entrada quando o retorno são do tipo double).

40. Crie uma classe chamada Hora, no pacote com.fiap.relogio:

a. Crie os atributos de classe hora, minuto e segundo.

b. Crie um construtor de classe que receba 3 parâmetros: a hora, o minuto e o segundo e atribuir esses valores aos respectivos atributos de classe.

c. Crie um método chamado obterHora, para retornar a Hora, no formato hh:mm:ss.

d. Crie uma classe de teste chamada TesteHora, que imprima a hora 12:40:15. (12 horas, 40 minutos e 15 segundos).

41. Crie uma classe chamada Lampada, no pacote com.fiap.iluminacao:

a. Crie os atributos de classe cor do tipo String e estaAcesa do tipo boolean.

b. Declare um construtor padrão.

Page 9: Lista_de_Exercícios - Java

c. Crie um construtor de classe que receba 2 parâmetros: a cor e o estado da lâmpada (true ou false) e atribua aos atributos de classe cor e estaAcesa.

d. Crie um construtor que receba apenas um parâmetro: a cor da lâmpada. Neste caso, atribua a cor ao atributo de classe cor e por padrão, atribua ao atributo estaAcesa o valor true.

e. Crie uma classe de teste chamada TesteLampada, que instancie 3 lâmpadas. A primeira, utilizando o construtor padrão, a segunda, o construtor com um parâmetro de entrada e a terceira, com o construtor com dois parâmetros.

f. Imprima as cores e o estado de cada uma das lâmpadas.

42. Crie uma classe denominada Ponto, no pacote com.fiap.coordenada, que armazene as coordenadas (x,y) de um ponto num plano. A coordenada default para qualquer ponto deve ser (0.0 , 0.0).

a. Além do construtor, esta classe deve conter um construtor de classe que receba como parâmetros os valores de x e y.

b. Crie um método para calcular a distância de 2 pontos (x1,y1) e (x2,y2). Este método receberá como parâmetro um objeto da classe Ponto e retornara a distância dos pontos.

Para calcular a distância de 2 pontos utilize a fórmula:dx = x2 - x1dy = y2 - y1distancia = sqrt(dx*dx + dy*dy)

c. Crie uma classe de Teste e calcule a distância de 2 pontos e imprima o resultado.

d. Use o construtor padrão para instanciar o primeiro ponto e o construtor de classe para instanciar o segundo ponto.

43. Crie uma classe denominada Cor (no modelo RGB), no pacote com.fiap.rgb e forneça os construtores apropriados para possibilitar as seguintes instanciações:

a. Cor cor1 = new Cor(10, 100, 20); // Red, Green, Blueb. Cor cor2 = new Cor(125, 30); //Red, Greenc. Cor cor3 = new Cor(50); //Redd. Cor cor4 = new Cor();

Crie um método na classe Cor chamada obterCor que retornará a cor no formato (<Red>, <green>, <blue>).

Crie uma classe de Teste para realizar as instanciações dos itens a a d e imprimir as cores.

Page 10: Lista_de_Exercícios - Java

44. Quais são os tipos de comentários em Java? Dê exemplos.

45. De que forma podemos gerar a documentação em formato HTML do código Java?

46. Quais são as tags mais utilizadas para a geração de documentação Javadoc?

47. Crie um sistema de vendas da seguinte forma:

a. Crie uma classe chamada Produto, dentro da package com.fiap.ecommerce:

Crie os atributos de classe codigo, descricao, valor. Declare o construtor padrão para a classe Produto. Crie um construtor de classe que receberá como parâmetros o código, a

descrição e o valor e atribuirá para os atributos de classe correspondentes. Crie os métodos atribuirCodigo, atribuirDescricao, atribuirValor para atribuir

valores aos atributos de classe correspondentes. Crie os métodos obterCodigo, obterDescricao, obterValor para retornar os

valores dos atributos de classe correspondentes.

b. Crie uma classe chamada Pedido, dentro da package com.fiap.ecommerce:

Crie os atributos de classe numero, produto do tipo Produto, quantidade e valorTotal.

Declare o construtor padrão para a classe Pedido. Crie um construtor de classe que receberá como parâmetros o número do

pedido, o produto e a quantidade e atribuirá os valores aos atributos de classe correspondentes. O valor a ser atribuído ao atributo valorTotal deverá ser calculado, multiplicando-se a quantidade ao valor do produto.

Crie os métodos atribuirNumero, atribuirProduto, atribuirQuantidade e atribuirValorTotal para atribuir valores para os atributos de classe correspondentes. O valor a ser atribuído ao atributo valorTotal deverá ser calculado, multiplicando-se a quantidade ao valor do produto.

Crie os métodos obterCodigo, obterProduto, obterQuantidade e obterValorTotal para retornar os valores dos atributos de classe correspondentes.

c. Crie uma classe chamada Endereco, dentro da package com.fiap.ecommerce:

Crie os atributos de classe tipo, endereço, numero e complemento. Declare o construtor padrão para a classe Endereco. Crie um construtor de classe que receberá como parâmetros, o tipo, endereço,

número e complemento e atribuirá os valores para os atributos de classe correspondente.

Crie os métodos atribuirTipo, atribuirEndereco, atribuirNumero e atribuirComplemento para atribuir valores aos tributos de classe correspondentes.

Crie os métodos obterTipo, obterEndereço, obterNumero e obterComplemento para retornar os valores dos atributos correspondentes.

d. Crie uma classe chamada Cliente, dentro da package com.fiap.ecommerce:

Page 11: Lista_de_Exercícios - Java

Crie os atributos de classe nome, endereço do tipo Endereco e pedido do tipo Pedido.

Declare o construtor padrão para a classe Cliente. Crie um construtor de classe que receberá como parâmetros, o nome,

endereço e o pedido e atribuirá os valores para os atributos de classe correspondente.

Crie os métodos atribuirNome, atribuirEndereço e atribuirPedido para atribuir valores aos tributos de classe correspondentes.

Crie os métodos obterNome, obterEndereço e obterPedido para retornar os valores dos atributos correspondentes.

e. Crie uma classe de teste chamada TesteCliente, dentro da package com.fiap.ecommerce:

Instancie um objeto da classe Produto: Código=16352, Descrição=”Ovo de páscoa”, valor = 60.00

Instancie um objeto da classe Pedido: numero= 5670 produto= produto criado no item a., quantidade=5.

Instancie um objeto da classe Endereco: tipo=”Rua”, endereço=”Lins de Vasconcelos”, numero=1222, complemento=”3 andar”.

Instancie um objeto da classe Cliente: nome=”João da Silva”, endereço=endereço criado no item c., pedido= pedido criado no item b.

Imprima o recibo para o cliente João da Silva, obtendo as informações através do objeto da classe Cliente, criado no item d.

Nome: João da SilvaEndereço: Rua Lins de Vasconcelos, 1222 – 3 andarPedido: 5670Produto: 16352 - Ovo de páscoaValor unitário: 60.0Quantidade: 5Valor Total: 300.0

f. Faça a documentação em formato HTML das classes Produto, Pedido, Endereço, Cliente e TesteCliente. A documentação deve conter as informações: descrição das classes, autor, versão, descrição dos métodos seus parâmetros e retornos, descrição dos construtores.

48. O que se entende por encapsulamento? Quais os seus benefícios?49. O que são modificadores?50. O que se entende por JavaBeans? Quais as suas principais características?

Page 12: Lista_de_Exercícios - Java

51. Considerando o trecho de código abaixo:

01 public class Aluno {02 private String nome;03 private String idade;0405 public String getIdade() {06 return idade;07 }08 public void setIdade(String idade) {09 this.idade = idade;10 }11 public String getNome() {12 return nome;13 }14 public void setNome(String nome) {15 this.nome = nome;16 }17 }

De que forma podemos acessar os atributos de classe nome e idade? Explique.

52. Crie uma classe chamada Foto no pacote com.fiap.album, com os atributos de classe nome do tipo String, largura e altura do tipo int, no padrão JavaBeans e documentação javadoc.

53. Crie uma classe chamada Album no pacote com.fiap.album, com os atributos de classe nome do tipo String, foto1, foto 2 e foto3 do tipo Foto(criado no exercício anterior), no padrão JavaBeans e documentação javadoc.

54. Crie uma classe chamada Formando no pacote com.fiap.album com os atributos de classe nome do tipo String e álbum do tipo Album(criado no exercício anterior) e turma do tipo String no padrão JavaBeans e documentação javadoc.

55. Crie uma classe de teste para testar a classe Formando, imprimindo as seguintes informações:

Formando: Fulano de Tal Turma: 1TDSXÁlbum: Álbum de FormaturaFotos: Família - Tamanho: 15 x 20 (altura x largura) Amigos - Tamanho: 13 x 18 Professores - Tamanho: 10 x 15

Todas as informações devem ser acessadas a partir do objeto da classe Formando.

Page 13: Lista_de_Exercícios - Java

56. O que se entende por controle de fluxo?57. Quais são os tipos de controle de fluxo?58. Qual a diferença entre os comandos while e do while?

59. Considerando o trecho de código abaixo, substitua o comando if-else pelo operador ternário: [expressão condicional] ? [expressão se verdadeiro] : [expressão se falso]

01 if (x < 1) {02 y = x;03 } else {04 y = x + 1;05 }

60. Explique o que será executado na instrução de código a seguir:

01 public static void main(String[] args) {02 int z = 0;03 int y = 10;0405 while (z < 10) {06 y++;07 System.out.println("y= " + y);08 }09 }

61. O que será impresso no código a seguir?01 public class TesteImprimir {0203 public static void main(String[] args) {04 for(int i = 0; i < 5; i++) {05 for(int j = 1; j<= 5; j++) {06 System.out.print(i + j);07 }08 System.out.println();09 }10 }1112 }

62. Escreva um aplicativo Java que exiba os padrões abaixo, utilizando o controle de fluxo for e as instruções:

System.out.print(‘*’);System.out.print(‘ ’);System.out.println();

Page 14: Lista_de_Exercícios - Java

63. Corrija os trechos de código a seguir:

a. 01 i = 0;02 while(i <= 10);03 i++04 }

b. 01 for (k = 0.1; k != 1.0; k+= 0.1)02 System.out.println(k);03 }

c. 01 Switch(n) {02 case 1:03 System.out.println(“Número 1”);04 case 2:05 System.out.println(“Número 2”);06 break;07 default:08 System.out.println(“Número diferente de 1 e 2”);09 break;10 }

64. Considerando a tabela de contribuição de INSS abaixo, crie uma classe chamada Salario no pacote com.fiap.dp:

a. Crie um atributo de classe chamado valorBruto.

b. Crie um construtor de classe que receba como parâmetro o valor do salário bruto e atribua para o atributo de classe valorBruto.

c. Crie um método chamado obterINSS que retornará o resultado do cálculo do INSS de acordo com a faixa salarial. (valor INSS = salário * aliquota)

d. Crie um método chamado obterValorLiquido que retornará o valor do salário bruto sem o INSS. (valor liquido = valor bruto – valor INSS)

Page 15: Lista_de_Exercícios - Java

e. Faça a documentação javadoc da classe Salário e dos métodos criados acima.

f. Crie uma classe de teste para calcular o INSS dos salários de: R$900,00, R$1.400,00 e R$5.000,00 e imprimir os respectivos valores líquidos.

65. Crie uma classe chamada Funcionario no pacote com.fiap.dp:

a. Crie um atributo de classe salario do tipo Salario (criado no exercício anterior).

b. Crie um atributo de classe nome do tipo String e idade do tipo int.

c. Crie um construtor de classe para receber os parâmetros nome, idade e salário e atribuir os valores aos atributos de classe correspondentes.

d. Crie um método para imprimir mensagem de acordo com a idade do funcionário. Caso o funcionário tenha 18 anos ou mais, imprimir “Maior de idade”, caso contrário, “Menor aprendiz”.

e. Faça a documentação javadoc da classe e método criados.

f. Crie uma classe de teste para imprimir as informações abaixo:

Funcionário 1:Nome: Maria das NevesIdade: 58 anos – <Maior de idade/Menor de idade>Salário Bruto: 1500.0Desconto de INSS: <valor do desconto>Salário Líquido: <valor do salário líquido>

Funcionário 2:Nome: Marcelo dos SantosIdade: 17 anos – <Maior de idade/Menor de idade>Salário Bruto: 600.0Desconto de INSS: <valor do desconto>Salário Líquido: <valor do salário líquido>

Page 16: Lista_de_Exercícios - Java

66. Crie uma classe chamada Inteiro no pacote com.fiap.util:

a. Crie um método chamado ePar que receberá o número inteiro e retornará se ele é um número par (verdadeiro ou falso).

b. Crie um método chamado imprimirImpares para receber um número inteiro e imprimir todos os números ímpares entre zero e o número informado.

c. Crie um método chamado imprimirPares para receber um número inteiro e imprimir todos os números pares entre zero e o número informado.

d. Faça a documentação javadoc da classe Inteiro e dos métodos criados acima.

e. Crie uma classe de teste para testar o método ePar, imprimindo a mensagem: “O número: <inteiro> é par” ou “O número: <inteiro> é ímpar”

f. Crie uma classe de teste para testar o métodos imprimirImpares e imprimirPares.

67. Crie uma classe chamada Frase, dentro da package com.fiap.util:

a. Crie um método chamado ePalindromo que receberá como parâmetro uma palavra ou frase e retornará verdadeiro caso seja um palíndromo e falso, caso contrário.

Palíndromos são palavras (frases também) que são iguais quando lidas de frente para trás e de trás para frente, ignorando os espaços.Ex.: AME O POEMA – AMOR A ROMA – ATE O POETA – LUZ AZUL

b. Crie um método chamado obterTotalCaracteres que receberá 2 parâmetros: o primeiro para informar o caractere a ser contado e o segundo, a palavra ou frase a ter os caracteres contados e retornará o número de caracteres existentes.

Exemplo: AME O POETA _ 2 caracteres A.

c. Faça a documentação javadoc da classe e dos métodos implementados.

d. Crie uma classe de teste para testar os métodos criados acima.

68. Crie uma classe chamada Calendario, no pacote com.fiap.util:

a. Crie um método que retorne os nomes dos meses do ano, utilizando a estrutura de controle switch, que receba como parâmetro o mês do tipo int. Exemplo: 3 _Março

b. Faça a documentação no formato javadoc da classe e método criado.

c. Crie uma classe de teste para testar o método criado no item a.

Page 17: Lista_de_Exercícios - Java

69. Considerando i = 1, j = 2, k = 3 e m= 2, o que cada uma das seguintes instruções imprime?

a. System.out.println(i == 1);b. System.out.println(j == 3);c. System.out.println(1 >= 1 && j< 4);d. System.out.println(!(k > m));e. System.out.println(m > k ? “Amarelo”: “Vermelho”);f. System.out.println(m >= j ? (i > j ? “Verde” : “Azul” ): “Vermelho”);

70. Escreva um aplicativo em Java para calcular o produto dos inteiros ímpares de 1 a 15 e imprima o resultado.

71. Crie um aplicativo que imprima o fatorial de um numero não negativo. Caso o número informado seja negativo, imprima a mensagem “Número negativo.”

Exemplo: 5! = 5 * 4 * 3 * 2 * 1 = 120

O fatorial de um número inteiro não negativo n é escrito como n! e é definido como: n! = n * (n-1) * (n-2) * ... * 1 e n! = 1 para n = 0.

72. Crie uma classe chamada StringUtil no pacote com.fiap.util. Para esta classe:

a. Crie um método que receba como parâmetro um String e retorne o total de vogais deste String.

b. Crie um método que receba como parâmetro um String e retorne o total de consoantes deste String.

c. Crie um método que receba um String como parâmetro e retorne este String invertido. Exemplo: “algoritmo” _ “omtirogla”

d. Crie um método que receba como parâmetro um String e retorne o String conforme o exemplo: “algoritmo” _ “AlGoRiTmo”

e. Crie um método que receba como parâmetro um String e retorne o String conforme o exemplo: “algoritmo” _ “a l g o r i t m o”

73. Reproduza o loop while abaixo, utilizando o controle de fluxo for:

01 public static void main(String[] args) {02 int i = 0;03 while(i <=10 ) {04 System.out.println(i);05 i++;06 }08 }

Page 18: Lista_de_Exercícios - Java

74. Escreva um aplicativo em Java para ler a ordem de uma matriz e imprimir a estrutura dessa matriz.Exemplo: 3 X 5

75. O que é um array? Explique.76. Como é possível acessar um elemento de um array?77. O que são arrays bidimensionais? Quando ele é utilizado?

78. Crie uma classe chamada TesteArray, contendo um método main.

a. Crie e inicialize uma variável array de inteiros chamado array1, com os valores: 1, 2, 3, 5, 7.

b. Crie e inicialize uma variável array de inteiros chamado array2 e atribua um array de inteiros de 6 elementos.

c. Utilizando um loop, inicialize os elementos de array2 com o quadrado dos respectivos elementos de array1.

d. Imprima os resultados: Exemplo: “O quadrado de 2 é 4”.

79. Crie um aplicativo em Java para imprimir os meses do ano e as respectivas estações do ano, utilizando um array bidimensional.

80. Crie um aplicativo em Java e realize as seguintes tarefas:

a. Declare uma variável (array) do tipo double chamado valores.

b. Atribua a essa variável um array com 10 elementos do tipo double.

c. Atribua o valor 10.55 ao primeiro elemento do array.

d. Atribua o valor 16.98 ao décimo elemento do array.

e. Some todos os elementos do array utilizando uma instrução for e imprima o resultado.

81. Considerando o trecho de código abaixo:

01 public class ExercicioArray {02

Page 19: Lista_de_Exercícios - Java

03 public static void main(String argv[]){04 int inteiros[] = {1,2,3,4,5,6,7,8,9,10};0506 for(int i=0; i <=inteiros.length; i++) {07 System.out.println(inteiros[i]);08 }09 }10 }

O que ocorre ao executar o método main da classe ExercicioArray? Explique.

82. Escreva um aplicativo em Java que preencha um array de 15 posições com valores inteiros e aleatórios entre 0 e 30 e imprima o maior e o menor valor armazenado e a diferença entre eles.

Para obter números inteiros aleatórios utilize o método nextInt(int n) da classe java.util.Random.

Exemplo:Random r = new Random(); // Inicializar a geração de números aleatórios.int y = r.nextInt(x); // Retorna um número inteiro de 0 a x-1.

83. Crie uma classe chamada ExercicioArray2 com os seguintes métodos:

a. Ordenar: que recebe como parâmetro um array de inteiros e retorna o array com seus elementos ordenados em ordem crescente.

b. Imprimir: que recebe como parâmetro um array de inteiros e imprime todos os elementos desse array.

c. ImprimirPares : que recebe como parâmetro um array de inteiros e imprime todos os elementos pares desse array.

d. Crie uma classe de teste para testar os métodos criados.

84. Escreva um aplicativo em Java, que dados 2 conjuntos de inteiros, imprima todos os inteiros comuns a esses conjuntos. Represente os conjuntos utilizando 2 arrays: um com 10 elementos e outro com 5 elementos.

Exemplo:Elementos comuns aos 2 conjuntos abaixo: 10, 21.

Page 20: Lista_de_Exercícios - Java

85. Preencha as lacunas em cada uma das seguintes afirmações:a. Um (a) ________ é utilizado (a) para percorrer uma coleção e pode remover

elementos da coleção durante a iteração.b. Um elemento em uma List pode ser acessado utilizando o (a) ________ do

elemento.c. Lists às vezes são chamadas de ________.d. Uma ________ é um objeto que representa um grupo de objetos.e. Um set é uma ________ que não pode conter elementos duplicados. Set modela a

abstração matemática de ________.f. Uma ________ não pode conter chave duplicada. Cada ________ pode mapear

somente um valor.g. Classes que implementam List: ________ e ________.h. Classes que implementam Map: ________ e ________.

86. Por que é necessário o uso de casting após retirar um objeto de uma collection (até a versão 1.4)?

87. Qual a diferença entre uma array e uma collection com relação ao número de elementos que cada uma pode conter?

88. Explique a utilização de cada um dos seguintes métodos relacionados com Iterator:a. hasNext()b. next()c. remove()

89. Crie um sistema de estacionamento da seguinte forma:

a. Crie uma classe chamada EnderecoBean, no padrão Javabeans no pacote com.fiap.bean: Crie os atributos de classe endereco, bairro e cidade do tipo String. Crie os métodos getters e setters.

b. Crie uma classe chamada PessoaBean, no padrão Javabeans no pacote com.fiap.bean: Crie os atributos de classe nome do tipo String e endereço do tipo

EnderecoBean (criado no exercício anterior). Crie os métodos getters e setters.

c. Crie uma classe chamada VeiculoBean, no padrão Javabeans no pacote com.fiap.bean.

Page 21: Lista_de_Exercícios - Java

Crie os atributos de classe placa do tipo String e proprietario do tipo PessoaBean. (criado no exercício anterior).

Crie os métodos getters e setters.

d. Crie uma classe chamada Estacionamento no pacote com.fiap.bean. Crie uma coleção de veiculos do tipo VeiculoBean (criado no exercício

anterior), sabendo que os carros deverão ser identificados e recuperados a partir de sua placa, utilizando a classe HashMap.

Crie um método chamado devolverVeiculo que recebe como parâmetro o número da placa, retorna o veiculo correspondente e o retira da coleção de veículos.

Crie um método chamado receberVeículo, que recebe como parâmetro um veículo adiciona o veículo na coleção de veículos.

Crie um método chamado retornarTotalVeiculos, que retorna o número de veículos na coleção de veículos do estacionamento.

e. Crie uma classe de teste para testar a classe Estacionamento e os métodos criados.

90. Crie uma classe chamada Agenda no pacote com.fiap.agenda:a. Crie uma coleção ordenada de pessoas do tipo PessoaBean utilizando a classe

ArrayList.b. Crie um método chamado incluirContato que recebe como parâmetro um atributo

do tipo PessoaBean e o inclui na Lista.c. Crie um método chamado removerContato que recebe como parâmetro um

atributo do tipo PessoaBean e o remove da Lista.d. Crie um método chamado listarContatos que imprime todos os contatos da Lista.

(Nome, endereço e telefone)e. Crie uma classe de teste para testar a classe Agenda e os métodos criados.

91. Crie uma classe chamada Agenda2 no pacote com.fiap.agenda:a. Crie uma coleção ordenada de pessoas do tipo PessoaBean utilizando a classe

LinkedList.b. Crie um método chamado incluirContato que recebe como parâmetro um atributo

do tipo PessoaBean e o inclui no início na Lista. Caso a lista tenha 5 ou mais contatos, remove o último contato da lista antes de incluir o novo contato.

c. Crie um método chamado removerContato que recebe como parâmetro um atributo do tipo PessoaBean e o remove da Lista.

d. Crie um método chamado listarContatos que imprime todos os contatos da Lista. (nome e telefone).

e. Crie uma classe de teste para testar a classe Agenda2 e os métodos criados.

92. Crie um aplicativo em Java que, dado uma lista de 10 nomes, imprima os nomes ordenadamente, na seqüência em que foram inseridos e em seguida, de forma crescente, utilizando collection.

93. Qual a diferença básica entre usar collections com cast e usar generics em JAVA?

94. Considerando o trecho de código abaixo responda:

Page 22: Lista_de_Exercícios - Java

01 List lista = new ArrayList();02 lista.add(new PessoaBean());03 lista.add(new AutomovelBean());

É possível em uma mesma collection, manter referências de elementos de tipos diferentes? Na prática, isso pode ser utilizado? Justifique.

95. Altere o trecho de código abaixo, utilizando Generics:01 Map map = new HashMap();02 map.put("Aula1", "Algoritmos e Programação" );

96. Crie um sistema bancário da seguinte forma:a. Crie uma classe chamada ContaBean no padrão JavaBeans no pacote

com.fiap.bancofiap.bean. Crie os atributos de classe numero, titular e saldo, com os tipos mais

adequados. Crie os métodos getters e setters correspondentes.

b. Crie uma classe chamada AgenciaBean no padrão JavaBeans no pacote com.fiap.bancofiap.bean. Crie os atributos de classe nome e numero, com os tipos mais adequados. Crie um atributo de classe chamado contas que represente uma coleção de

ContaBean, assumindo que as contas de uma agência não podem se repetir, utilizando Generics.

Crie os métodos getters e setters correspondentes.

c. Crie uma classe chamada BancoBean no padrão JavaBeans no pacote com.fiap.bancofiap.bean. Crie os atributos de classe nome e numero, com os tipos mais adequados. Crie um atributo de classe chamado agencias que represente uma coleção de

AgenciaBean, assumindo que as agencias de um banco não podem se repetir, utilizando Generics.

Crie os métodos getters e setters correspondentes.

Considerando que o banco Fiap possui 2 agências em São Paulo e que cada uma dessas agências possuem inúmeras contas, elabore os dois próximos exercícios utilizando as classes criadas nos exercícios anteriores.

97. Escreva um aplicativo que imprima um relatório com as seguintes informações:a. Nome e número do banco.b. Agências, com respectivos nomes e números.c. Para cada agência, as contas abertas, com as seguintes informações de cada conta:

número da conta, nome do titular e saldo em conta.

98. Escreva um aplicativo que liste todas as contas do banco Fiap que possuem saldo negativo, informando: número da conta, nome do titular, número da agência e saldo em conta.

Page 23: Lista_de_Exercícios - Java

99. Considerando que a empresa FIAPCorporation trabalha com vários bancos diferentes localizados nas diversas regiões de São Paulo (Leste, Oeste, Norte e Sul) e que precisa relacioná-los para controlar suas finanças, escreva um aplicativo que, utilizando uma coleção de BancoBean com Generics., imprima o nome, número do banco e a região.(Não são necessárias as informações referentes a agências e contas).

100. Crie um aplicativo em Java que popule uma lista com 10 elementos do tipo String. Em seguida imprima todos os elementos, o maior e o menor elemento da lista, utilizando Generics.

101. O que é exceção em uma aplicação em Java?102. Como podemos realizar o tratamento de uma exceção utilizando a estrutura

try/catch? Explique103. Como funciona o bloco finally?104. É possível utilizar a estrutura try/finally, sem o bloco catch? Explique.

105. Considerando o trecho de código abaixo:

01 package com.fiap.exception;0203 public class ExercicioException {0405 public static void main(String[] args) {06 String string = null;07 System.out.println("Substring: " + string.substring(0,2));08 }09 }

a. Qual o resultado ao executá-lo?b. Realize o tratamento de erro adequado, utilizando try/catch.

106. Crie uma classe chamada Calculadora.a. Crie um método chamado dividir, que recebe como parâmetro dois inteiros e

retorna a divisão de um inteiro pelo outro.b. Crie uma classe de teste chamada TesteCalculadora, para testar o método dividir e

realize uma divisão por zero.c. Faça o tratamento adequado da exceção.d. Realize novamente o teste do método dividir.

107. Escreva um aplicativo em Java que preencha um array de 10 posições com valores inteiros e aleatórios entre 0 e 20.a. Percorra o array imprimindo os elementos das posições 0 a 12.b. Execute o aplicativo e verifique a exceção gerada.c. Faça o tratamento adequado para a exceção.

Para obter números inteiros aleatórios utilize o método nextInt(int n) da classe java.util.Random.

Exemplo:

Page 24: Lista_de_Exercícios - Java

Random r = new Random(); // Inicializar a geração de números aleatórios.int y = r.nextInt(x); // Retorna um número inteiro de 0 a x-1.

108. Escreva um aplicativo em Java que converta um String em um inteiro, utilizando o método Integer.parseInt(String s) que retorna um int, do pacote java.lang. Realize a conversão da String “Fiap” e verifique a exceção gerada. Faça o tratamento adequado.

Exemplo:int inteiro = Integer.parseInt(“10”);

109. Cite exemplos de exceções em Java.

110. Qual a vantagem e desvantagem de se utilizar o bloco catch como no trecho de código abaixo?

01 ...02 catch(Exception e) {03 ...04 }

111. Quais as funcionalidades do pacote java.io?112. Quais objetos são utilizados para realizar a entrada e saída de informações?113. Quais classes são utilizadas para ler informações contidas em arquivo?114. Quais classes são utilizadas para escrever dados em arquivo?115. Qual a principal diferença entre a classe String e StringBuffer?

116. Uma Faculdade necessita de um sistema para cadastro de alunos, contendo as seguintes informações: registro de matrícula (5 dígitos), nome, data de nascimento e endereço (JavaBean Aluno). Para o desenvolvimento desta aplicação são solicitados os seguintes requisitos mínimos:

a. Possuir as funcionalidades: Inclusão de alunos: todos os campos são obrigatórios. Listar os alunos cadastrados no sistema.

b. O armazenamento das informações deve ser realizado em arquivo (aluno.txt)c. O sistema deve conter os tratamentos das exceções.

Observação importante:Procure criar métodos dentro da classe de Teste para cada funcionalidade e chamá-los a partir do método main. Exemplo:

Page 25: Lista_de_Exercícios - Java

117. Desenvolver uma classe tipo enums chamada “MeusDiasSemana” que contenha os dias da semana, conforme segue: SEGUNDA, TERCA, QUARTA, QUINTA, SEXTA, SABADO E DOMINGO.

118. Baseado no exercício anterior monte uma estrutura para apresentar as seguintes informações:a. SEGUNDA, TERCA = Inicio de semanab. QUARTA = Meio de semanac. QUINTA = Arquitetando o final de semanad. SEXTA = Final de semana chegoue. SABADO = Vou sair para azararf. DOMINGO = Estou de porre, amanha é segunda

119. Desenvolver uma classe chamada “EstruturaEnums” que contenha:a. Uma estrutura de enum com o nome de “devices” e suas constantes serão: PC,

NOTEBOOK, PDA, CELULAR e SMARTPHONE.b. Incluir como definição de cada constante uma marca qualquer de mercado.c. Incluir um valor médio de mercado para cada produto.d. Incluir um método que retorne a descrição (marca) da constante.e. Incluir um método que retorne o valor médio de uma constante.f. Incluir um método que retorne a descrição e o valor médio da constante.

120. Desenvolver uma classe de Teste com um loop para percorrer todos os itens do enum “devices” e apresentar a marca e o valor.

121. Dentro da classe “EstruturaEnums” desenvolver uma nova estrutura de enums chamada “status” e suas constantes serão: ATIVO, INATIVO, FINALIZADO e testar esta nova estrutura pela classe de Teste.

122. Dentro da classe “EstruturaEnums” desenvolver uma nova estrutura de enums chamada “senha” e suas contantes serão: MINIMO=4 e MAXIMO=8 e testar esta nova estrutura pela classe de Teste.

Page 26: Lista_de_Exercícios - Java

123. Criar um Java Project chamado AulaLog4j e seguir as orientações abaixo:a. Adicionar a biblioteca log4j na aplicaçãob. Criar uma classe chamada ExemploAulaLog4j com método main dentro do pacote

chamado br.com.fiap.aulalog.c. Implementar os métodos abaixo:

static Logger logger =Logger.getLogger(ExemploAulaLog4j.class);

public boolean loginSistema(String usuario, String senha){boolean ret = false;if(usuario.equals("aluno") && senha.equals("1234")){

ret = true;} else{

ret = false;}return ret;

}

public void logoffSistema(String usuario){ }public double calcularFrete(double valorProduto, double valorFrete){

double calc = 0;try{

calc = ((valorProduto / valorFrete));} catch(Exception e) { }return calc;

}

d. Dentro da pasta src, criar um arquivo chamado log4j.propertiese. Incluir neste arquivo o código abaixo:

# define o nivel e o objeto appender #log4j.rootCategory=INFO, tipoSaida# define onde sera a saida do loglog4j.appender.tipoSaida=org.apache.log4j.ConsoleAppender# define como sera a saida do loglog4j.appender.tipoSaida.layout=org.apache.log4j.PatternLayoutlog4j.appender.tipoSaida.layout.ConversionPattern=%5p %d [%t]%c{1}.%M:%L - %m%n

f. Implementar as regras de logs nos métodos conforme segue: Método loginSistema: Sendo usuário e senha validos, gravar uma mensagem

no log dizendo que o usuário logou no sistema. Caso contrario, a mensagem deve ser de negação.

Método logoffSistema: Mostrar uma mensagem dizendo que o usuário desconectou do sistema.

Método calcular Frete: caso acontece um exception no calculo, gravar no log a mensagem.

Método main: simular a execução do login, calculo do frete e logoff.

g. Alterar o arquivo log4j.properties e testar para: Gravar o log num arquivo (texto) chamado ExemploLog.log Definir o tamanho do log em 5KB Definir um único arquivo de backup Setar o atributo log4j.appender.tipoSaida.append=true;

h. Alterar o arquivo log4j.properties para que a saída do log seja como esta:WARN [2008-08-15 00:18:55,461]ExemploAulaLog4j.loginSistema(18) | Não foi possível realizar o login no sistema XYZ

Page 27: Lista_de_Exercícios - Java

i. Alterar o arquivo log4j.properties e testar para: Gravar o log num arquivo (HTML) chamado ExemploLog.html Usar o layout padrão do formato HTML Definir o tamanho do arquivo em 5KB Definir um único arquivo de backup

j. Alterar o arquivo log4j.properties e testar para: Gravar arquivo com nome LogDiario.log Definir como backup diário Setar o atributo log4j.appender.tipoSaida.DatePattern='.'dd-MM-yyyy

Alterar o arquivo log4j.properties e testar para Appender para envio de log por email:

#email appender necessita também do mail.jar e activation.jarlog4j.appender.mail=org.apache.log4j.net.SMTPAppender#defines how emails are sendlog4j.appender.mail.BufferSize=1log4j.appender.mail.SMTPHost="smtp.myservername.xx"log4j.appender.mail.From=fromemail@myservername.xxlog4j.appender.mail.To=toemail@myservername.xxlog4j.appender.mail.Subject=Log ...log4j.appender.mail.threshold=errorlog4j.appender.mail.layout=org.apache.log4j.PatternLayoutlog4j.appender.mail.layout.ConversionPattern=%d{ABSOLUTE} %5p%c{1}:%L - %m%n

124. Crie uma classe em Java chamada Aluno no pacote com.fiap.ltp.oo. Insira 3 atributos que tenham significado para a classe Aluno e utilize tipos primitivos ou objetos relevantes, por exemplo: dia do mês do tipo byte, pois o dia não passa de 31. Aplique o encapsulamento no padrão JavaBean.

125. Escreva uma classe em Java no pacote com.fiap.ltp.oo chamada Animal, seguindo as especificações abaixo:a. Declare os atributos: nome, idade e sexo. Utilize um modificador que permita ser

acessado por uma subclasse. Utilize tipagem relevantes.b. Escreva um método chamado andar com modificador publico que não retorne

valor. Esse método não terá implementação.c. Escreva um método chamado falar com modificador publico que não retorne valor.

Implemente uma instrução que exiba na tela a mensagem “Este é o método falar da super classe Animal.”.

d. Escreva um método chamado comer com modificador publico que não retorne valor. Implemente uma instrução que exiba na tela a mensagem “Este é o método comer da super classe Animal.”.

e. Crie um construtor que não tenha parâmetro em sua lista de argumentos. Na implementação, através da instrução this chame os métodos: falar() e comer();

f. Crie um outro construtor que em sua lista de argumentos passe um atributo chamado nome, e atribua ao atributo de classe chamado nome criado no item A.

126. Escreva uma classe em Java no pacote com.fiap.ltp.oo chamada Cachorro, seguindo as especificações abaixo:a. Insira uma instrução que permita que a classe Cachorro seja a subclasse da classe

Animal.

Page 28: Lista_de_Exercícios - Java

b. Crie um construtor que acesse o construtor da superclasse que não tenha parâmetros em sua lista de argumentos e, logo após exiba da tela a seguinte mensagem: "Este é o construtor da subclasse Cachorro.”.

c. Escreva um método chamado falar com modificador publico que não retorne valor. Implemente uma instrução que exiba na tela a mensagem “Este é o método falar da sub-classe Cachorro.”.

127. Escreva uma classe em Java no pacote com.fiap.ltp.oo.teste chamada TesteHeranca, seguindo as especificações abaixo:a. Declare e instancie a classe Cachorro.b. Execute a aplicação e veja o resultado no console. Utilize o modo Debug para ver

passo a passo o funcionamento da herança.c. Declare uma variável de referência do tipo Animal e atribua uma instância de

Cachorro. Tente chamar o método falar e veja o resultado. Análise o código.

128. Escreva uma classe em Java no pacote com.fiap.ltp.oo chamada Pai, seguindo as especificações abaixo:a. Declare no escopo desta classe os atributos nome e idade.b. Construa um novo construtor desta classe recebendo estes atributos como

argumentos.c. Construa um novo construtor recebendo o atributo nome. No seu escopo

implemente uma instrução que exiba na tela a mensagem “Meu pai se chama: (nome definido no atributo)”.

129. Escreva uma classe em Java no pacote com.fiap.ltp.oo chamada Filho, seguindo as especificações abaixo:a. Insira uma instrução que permita que a classe Filho seja a subclasse da classe Pai.b. Crie um construtor que acesse o construtor da superclasse que tenha o parâmetro

nome e no argumento informe o nome do seu pai.c. Escreva um método chamado nome com modificador publico que não retorne

valor. Implemente uma instrução que exiba na tela a mensagem “Meu nome é: (escreva o teu nome)”.

130. Escreva uma classe em Java no pacote com.fiap.ltp.oo.teste chamada TesteHerancaPaiFilho, seguindo as especificações abaixo:a. Declare e instancie a classe Filho.b. Execute o método nome e veja o resultado no console. Utilize o modo Debug para

ver passo a passo o funcionamento da herança.c. Declare uma variável de referência do tipo Pai e atribua uma instância de Filho.

Tente chamar o método nome. Não funcionara. Analise o motivo. Remova o método nome e analise o código.

131. Imagine algum tipo de negócio. Crie as classes e aplique: herança, redefinição (overriding), polimorfismo e classe abstrata. Após criar todas as classes e aplicar OO, crie uma classe de teste e execute. obs.: Não esqueça de utilizar package em todas classes. Método main somente na classe de teste.

132. Escreva uma classe em Java no pacote com.fiap.ltp.oo chamada Populacao, seguindo as especificações abaixo:a. Escreva um método chamado calcularPopulacao com modificador publico que não

retorno valor. Neste método não haverá implementação.b. Aplique o conceito de sobrecarga (overload) seguindo as definições abaixo. Utilize

tipagem relevante.

Page 29: Lista_de_Exercícios - Java

Estado Estado e Cidade Estado, Cidade e Bairro Intervalo de CEPs

133. Escreva uma classe em Java no pacote com.fiap.ltp.oo chamada Empregado, seguindo as especificações abaixo:a. Declare os atributos: nome e salario. Utilize um modificador que permita ser

acessado por uma subclasse. Utilize tipagem relevantes.b. Escreva um novo construtor desta classe recebendo estes atributos;c. Escreva um método chamado mostarSalario com modificador publico e no seu

escopo somente retorne o atributo salário.

134. Escreva uma classe em Java no pacote br.com.fiap.ltp.oo chamada VendaEmpregado, seguindo as especificações abaixo:a. Insira uma instrução que permita que a classe VendaEmpregado seja a subclasse

da classe Empregado.b. Declare o atributo bônus. Utilize um modificador privado e também tipagem

relevante.c. Crie um novo construtor da classe VendaEmpregado com os seguintes

argumentos: nome, salário e bônus. Utilize tipagem relevante.d. Faça com que este construtor tenha acesso a superclasse definida com

parâmetros. Este parâmetros serão os mesmos definidos como argumentos do novo construtor.

e. Defina o atributo da classe VendaEmpregado igual ao argumento definido no construtor.

f. Utilizando a redefinição (overriding) faça o método mostrarSalario retornar a soma de salário mais o bônus.

135. Escreva uma classe em Java no pacote com.fiap.ltp.oo.teste chamada TesteExercicio, seguindo as especificações abaixo:a. Declare e instancie a classe Empregado utilize o seu nome e um salário fictício.b. Execute a classe e apresente na console o seu nome e o salário.c. Declare e instancie a classe VendaEmpregado, utilize um outro nome e salário e

um valor de bônus qualquer.d. Execute a classe e apresente na console o seu nome e o salário.e. Avalie o resultado.f. Utilizando as classes Empregado e VendaEmpregado, faça um exemplo de

UpCasting e DownCasting.

136. Escreva uma classe abstrata em Java no pacote com.fiap.oo chamada ClasseAbstrata, seguindo as especificações abaixo:a. Escreva um método chamado metodoAbstrato e que também tenha esta

característica.b. Escreva um método chamado metodoConcreto e que também tenha esta

característica. No seu escopo escreva um código que apresente na tela a mensagem “Este é o método real”.

137. Escreva uma classe concreta em Java no pacote com.fiap.oo chamada ClasseConcreta, seguindo as especificações abaixo:

Page 30: Lista_de_Exercícios - Java

a. Insira uma instrução que permita que a classe ClasseConcreta seja a subclasse da classe ClasseAbstrata.

b. Implemente o método chamado metodoAbstrato e escreva um código que exiba na tela “Este é um método abstrato”.

c. Redefina o método chamado metodoConcreto e escreva um código que exiba na tela “Este é um método redefinido”.

138. Escreva uma classe em Java no pacote com.fiap.ltp.oo.teste chamada TesteExercicio01, seguindo as especificações abaixo:a. Declare e instancie as classes (Abstrata e Concreta), execute seus métodos

distintos e analise o resultado.

139. Responda as perguntas abaixo:a. Porque na questão 137b devemos implementar e não redefinir?b. Porque na questão 137c devemos redefinir e não implementar?c. Que instrução devemos usar no método chamado metodoConcreto da classe

ClasseConcreta para seja apresentado as duas mensagens definidas em seus escopos?