Professional Documents
Culture Documents
//Prato.java
//Copo.java
return capacidade;
capacidade = cap;
//Faca.java
//Talher.java
//Garfo.java
Ex 2:
A classe que melhor representa o conceito de encapsulamento é a classe Copo. Nela os atributos estão
declarados como private e ela possui métodos públicos para que outras classes acessem seus atributos,
assim seus atributos não são alterados diretamente pelas outras classes, é a própria classe Copo que faz a
alteração de acordo com seus métodos.
Ex 3:
É possível simplificar uma parte deste diagrama utilizando o conceito de herança, pois como as classes
Faca e Garfo são uma especialização da classe Talher (São talheres com características específicas). Isso
indica que esses classes herdam também as características da classe Talher.
Ex 4:
//Copo.java
return capacidade;
capacidade = cap;
//Construtor default
public Copo(){
//Construtor alternativo
capacidade = c;
Ex 5:
//Enciclopedia.java
import java.util.*;
return qtdVolumes;
qtdVolumes = qtd;
//Volume.java
//Carro.java
import java.util.*;
//Roda.java
Ex 6:
Foi usado agregação no relacionamento entre carro e roda. No código não há diferença entre agregação e
composição, porém, conceitualmente não poderia usar composição pois ela é usada quando tem um
relacionamento “todo-parte” onde se a “parte” for removida o “todo” deixa de fazer sentido, ao contrário da
agregação que também é um relacionamento “todo-parte” porém se a “parte” for removida o “todo” ainda
continua fazendo sentido. No exemplo se a roda for removida do carro ele não deixa de ser carro.
Ex 7:
Foi usado composição no relacionamento entre as classes Enciclopedia e Volume. Não poderia usar
agregação pois no caso a enciclopédia não faz sentido sem ter um volume. No caso da agregação é
utilizada onde mesmo sem a parte o todo ainda continua a fazer sentido, como no exemplo não existe
enciclopédia sem volume o relacionamento utilizado é o de composição.
Ex 8:
//Carro.java
import java.util.*;
qtdRodas = qtdRodas + 1;
Ex 9:
//Carro.java
import java.util.*;
qtdRodas = qtdRodas + 1;
qtdRodas = qtd;
Ex 10:
O princípio da orientação ao objeto que permite criar mais de um método com o mesmo nome na mesma
classe é o principio de “overload” (sobrecarga de operadores). Eles podem ter o mesmo nome porém seus
parâmetros devem ser diferentes.
Ex 11:
//Movel.java
}
//Sofa.java
//Estante.java
//ContaCorrente.java
return saldo;
saldo = s;
//ContaSimples.java
super.retirada(valor);
else{
}
}
//ContaEspecial.java
super.retirada(valor);
else{
Ex 12:
//ContaEspecial.java
super.retirada(valor);
else{
}
Ex 13:
O princípio que nos permite criar métodos com o mesmo nome e parâmetros na classe “Mãe” e na classe
“Filha” é o polimorfismo. Eles podem ter o mesmo nome, os parâmetros iguais porém seus corpos são
diferentes e devem estar em classes diferentes usando o conceito de herança.
Ex 14:
//Pessoa.java
return nome;
nome = n;
System.out.print(getNome()+": ");
//Cliente.java
return saldo;
saldo = s;
}
//Metodo para mostrar os atributos
super.mostraAtributos();
System.out.println(getSaldo());
//Loja.java
import java.util.*;
//Método main
l.movimento();
//Método movimento
c1.setNome("Mayko");
c1.setSaldo(1002);
listaClientes.add(c1);
c2.setNome("Matheus");
c2.setSaldo(1000);
listaClientes.add(c2);
c3.setNome("Thiago");
c3.setSaldo(1500);
listaClientes.add(c3);
c4.setNome("Jorge");
c4.setSaldo(2000);
listaClientes.add(c4);
c5.setNome("Magali");
c5.setSaldo(2500);
listaClientes.add(c5);
Iterator<Cliente> it = listaClientes.iterator();
Cliente c = null;
while(it.hasNext()){
c = new Cliente();
c = it.next();
c.mostraAtributos();
Ex 15:
//Cliente.java
return saldo;
saldo = s;
public Cliente(){
//Nada mesmo
super.setNome(n);
saldo = s;
super.mostraAtributos();
System.out.println(getSaldo());