O documento apresenta 10 exercícios de programação orientada a objetos em Java. Os exercícios abordam conceitos como polimorfismo, encapsulamento, tipos de retorno de métodos, laços de repetição, vetores e diagrama de classes para um sistema simples de reserva de quartos de hotel.
1. INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO CEARÁ CAMPUS CEDRO
Curso: Integrado em Informática
Disciplina: Programação Orientada a Objetos
EXERCÍCIOS 04 – PROGRAMAÇÃO ORIENTADA A OBJETOS
1º) Defina (diga o que é e para que serve):
· Polimorfismo
· Encapsulamento
2º) Dê dois exemplos de uso de cada uma das definições do exercício anterior.
3º) O que é um tipo de retorno? Todo método precisa ter um?
4º) Descrever o diagrama de classes para um sistema simples de reserva e ocupação de quartos para um
hotel. O sistema deve armazenar reservas feitas por um funcionário de um ou mais quartos para um
determinado cliente. O funcionário deve ser capaz de :verificar se um quarto está ocupado ou não, inserir
ou alterar os dados de um cliente, realizar a reserva de um quarto para um cliente. Considere os atributos
de todas as classes como privados. Cada cliente e funcionário deve possuir: nome, rg, endereço, telefone.
O cliente ainda deve possuir um campo que armazene a quantidade de ocupações já realizadas por ele.
Um quarto pode ser simples ou luxo e deve indicar o número de camas e o tipo de cada uma delas
(solteiro ou casal).
5º) Escreva uma aplicação console Java que usa o laço for para contar de 0 até 10. Faça dois exemplos.
No primeiro você deverá escrever os valores na horizontal e no segundo você deverá escrever os valores
na vertical.
6º) Agora você deverá usar o laço for para contar de 10 até 0, ou seja, o inverso do exercício anterior.
Novamente você deverá fazer dois exemplos. No primeiro você deverá escrever os valores na horizontal e
no segundo você deverá escrever os valores na vertical.
7º) Escreva um programa Java console que usa o laço for para contar de 1 até 20 e exibir estes valores no
seguinte formato:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
Dica: Use o operador de módulo % para determinar o momento da quebra de linha e o método
System.out.printf() para formatar o valor a ser exibido de forma a adicionar a quantidade correta de
espaços entre os valores.
8º) Escreva um programa Java que usa o laço for para contar de 0 até 10 e somar todos estes valores, ou
seja, 0 + 1 + 2 + 3 + etc. Como resultado seu programa deverá exibir o valor 55.
9º) Ler um vetor A de 10 elementos. Construa um vetor B do mesmo tipo que recebe os valores de A na
ordem inversa. O primeiro elemento de A será o último de B, o segundo de A será o penúltimo de B e
assim por diante. Escreva A e B.
10º) Ler dois vetores A e B de inteiros com 5 elementos cada. Crie um vetor C que recebe os valores de A
e B, nesta ordem. Desta forma, C terá o dobro de tamanho de A ou B. Escreva A, B e C.
2. Curso: Integrado Informática
Respostas
1.
a) Polimorfismo é a capacidade de um objeto enviar uma mensagem genérica para muitos outros
objetos; ou seja, um mesmo nome de método é usado em diferentes classes ou usado na mesma classe
com quantidade de parâmetros diferentes ou tipos de parâmetros diferentes.
b) O encapsulamento é justamente o empacotamento dos atributos e dos métodos numa mesma
classe. Isto serve para protege os dados contra corrupção, pois somente os métodos da classe poderão
alterar as estruturas de dados desta classe em questão.
2. Exemplo de Polimorfismo:
public class Retangulo {
private float base, alt;
public Retangulo() {
base = 5; alt = 20;
}
public Retangulo(float b, float a) {
base = b; alt = a;
}
public void mostrarArea() {
System.out.println("nÁrea = " + base * alt);
}
public static void main(String args[]) {
Retangulo ret1 = new Retangulo(10,2);
Retangulo ret2 = new Retangulo();
ret1.mostrarArea();
ret2.mostrarArea();
} }
Exemplo de Encapsulamento:
public class JavaOO_0101 {
private float base;
private float alt;
public void iniciar(float b, float a) {
base = b;
alt = a;
}
public void mostrarArea() {
System.out.println("nArea = " + base * alt); }
public static void main (String args[]) {
JavaOO_0101 x = new JavaOO_0101();
x.iniciar(10, 2);
x.mostrarArea();
JavaOO_0101 y = new JavaOO_0101();
y.iniciar(5, 3);
y.mostrarArea();
} }
3. O comando return é utilizado para passar o valor requerido de volta para quem chamou o método e
é obrigatório quando o tipo de retorno não é void. Ele deve receber um único valor ou uma expressão que
deve ser compatível com o tipo de retorno especificado para o método. Quando o comando é encontrado,
o método termina sua execução imediatamente, ignorando todas as instruções subsequentes.
Um comando return sem valor de retorno retorna o tipo void, mas não é obrigatória sua utilização nestes
casos.
3. 4.
Hotel
-CódigoReserva: int
-NúmeroQuarto: Int
-TipoQuarto: String
-QuantidadeCama: int
-TipoCama: String
-NomeHospede: String
-RGHospede: String
-EndHospede: String
-TelHospede: String
-NomeFuncionário: String
-RGFuncionário: String
-EndFuncionário: String
-TelFuncionário: String
-DataEntrada: String
-DataSaída: String
-ValorReserva: double
-Pago: boolean
-TotalOcupação: int
VerificarDisponibilidadeQuarto()
ReservarQuarto()
InserirDados()
AlterarDados()
RemoverDados()
5. package exercicio5;
public class Exercicio5 {
private int cont;
public void contar(){
for(cont=0;cont<=10;cont++){
System.out.print(cont+" ");
} }
public void contar(int x){
cont=x;
for(cont=0;cont<=10;cont++){
System.out.println(cont);
} }
public static void main(String[] args) {
Exercicio5 x = new Exercicio5();
x.contar();
x.contar(0);
} }
6. package exercicio6;
public class Exercicio6 {
private int cont;
public void contar(){
for(cont=10;cont>=0;cont--){
System.out.print(cont+" ");
}
System.out.print("n");
}
public void contar(int x){
cont=x;
for(cont=10;cont>=0;cont--){
System.out.println(cont);
} }
public static void main(String[] args) {
4. Exercicio6 x = new Exercicio6();
x.contar();
x.contar(10);
} }
7. package exercicio7;
public class Exercicio7 {
public static void main(String[] args) {
int v=1;
int conta[][]= new int[4][5];
for(int l=0;l<4;l++){
for(int c=0;c<5;c++){
conta[l][c]=v;
v++;
} }
for(int l=0;l<4;l++){
for(int c=0;c<5;c++){
System.out.print(conta[l][c]+" ");
}
System.out.print("n");
} } }
8. package exercicio8;
public class Exercicio8 {
public static void main(String[] args) {
int cont;
int soma=0;
for(cont=0;cont<=10;cont++){
soma=soma+cont;
}
System.out.println(soma);
} }
9. package exercicio9;
import javax.swing.JOptionPane;
public class Exercicio9 {
public static void main(String[] args) {
int A[]=new int[10];
int B[]=new int[10];
int cont;
for (cont=0;cont<10;cont++){
A[cont]=Integer.valueOf(JOptionPane.showInputDialog("Insira um valor para o vetor A"));
B[9-cont] = A[cont];
}
System.out.println(" Vetor A:t Vetor B:");
for (cont=0;cont<10;cont++){
System.out.println("índice "+cont+ " = "+ A[cont]+"t"+"índice "+cont+ " = "+B[cont]);
} } }
10. package exercicio10;
import javax.swing.JOptionPane;
public class Exercicio10 {
public static void main(String[] args) {
int A[]=new int[5];
int B[]=new int[5];
int C[]=new int[10];
int cont;
for (cont=0;cont<5;cont++){
A[cont]=Integer.valueOf(JOptionPane.showInputDialog("Insira um valor para o vetor A"));