Orientação à Objetos 2

Propaganda
Java para Desktop
Programação Orientada à Objetos 2 – JSE
Java – POO
Encapsulamento

significa "ocultar informações“, ele define que
cada objeto contém todos os detalhes de
implementação necessários sobre como ele
funciona e oculta os detalhes internos sobre como
ele executa os serviços.
Java – POO
Porque devemos encapsular?
Exemplo: KM de um Carro
Existe KM negativa?
Java – POO
Porque devemos encapsular?
Carro c = new Carro();
c.km = -20;
Java – POO
Assim, para evitar esse tipo de problema,
Encapsularemos o atributo KM da classe Carro.
Mas como podemos encapsular?
Java – POO
1º- Encapsulamos restringindo o acesso direto a
propriedade;
private int km;
2º- Damos acesso a propriedade através de um método,
onde não é possível valores negativos;
public void setKm(int km) {
if (km >= 0)
this.km = km;
}
Java – POO
3º- Criamos um carro utilizando o
Encapsulamento;
Carro c = new Carro();
c.setKm(-10);
Dessa forma nunca teremos um carro com KM
negativa.
Java – POO
Os métodos Getters e Setters
Servirão como modo de acesso aos atributos
encapsulados de uma classe.
Java – POO
Método Set

Nomeamos um método acessor com set toda vez que
este método for modificar algum campo ou atributo de
uma classe;

Como o valor de um atributo da classe será modificado,
não é necessário que este método retorne nenhum valor,
por isso, os métodos setters são void. Porém,
obrigatoriamente, eles tem que receber um argumento
que será o novo valor do campo.
Java – POO
Método Get

Nomeamos um método acessor com get toda vez
que este método for verificar algum campo ou
atributo de uma classe;

Como este método irá verificar um valor, ele sempre
terá um retorno como String, int, float, etc. Mas não
terá nenhum argumento.
Java – POO

O encapsulamento é importante porque separa a
maneira como um objeto se comporta da maneira
como ele é implementado;

A definição de como implementar os conhecimentos
ou ações de uma classe, sem informar como isto é
feito.
Java – POO
Exemplo Prático: Login e Senha de Usuários
Prática – Modelando o Projeto
Java – POO
Herança

é um mecanismo que permite que características
comuns a diversas classes sejam agrupadas em
uma classe base, ou superclasse. A partir de uma
classe
base,
outras
classes
podem
ser
especificadas. Cada classe derivada ou subclasse
apresenta as características (estrutura e métodos)
da classe base e acrescenta a elas o que for
definido de particularidade para ela.
Java – POO
Quando usamos Herança?
Exemplo: Atributos comuns entre um Carro,
Bicicleta, Avião...
Java – POO
public class Veiculo {
String modelo;
int ano;
int quantPneus;
int quantPessoasAndam;
String cor;
}
Java – POO
Mas, como Herdamos?
public class Carro extends Veiculo{
}
Agora, um Carro é um Veículo!
Java – POO
Então podemos ter a seguinte instância
de carro:
Veiculo c1 = new Carro();
c1.setAno(2010);
Java – POO

SubClasse: uma classe que é um subtipo de uma ou
mais classes. Como tal, ela herda todas as
características de suas superclasses.

SuperClasse: classe a partir da qual todas as suas
características são herdadas por suas subclasses.
Java – POO
Exemplo Prático: Pessoa > Usuário
Pessoa > Funcionário
Java – POO

É muito importante saber usar Herança para
beneficiar, pois se mal projetado um projeto pode
ficar comprometido pelo uso indevido desse
conceito;

Podemos introduzir o conceito de Polimorfismo
através de Herança, vamos entender mais na frente
como.
Java – POO
Polimorfismo

é o princípio pelo qual duas ou mais classes
derivadas de uma mesma superclasse podem
invocar métodos que têm a mesma identificação
(assinatura)
mas
comportamentos
distintos,
especializados para cada classe derivada, usando
para tanto uma referência a um objeto do tipo da
superclasse.
Java – POO
Quando usamos o Polimorfismo?
Exemplo: Atributos comuns, porém serviços
(formas de fazer uma ação) diferentes.
Acelerar um Veículo.
X
X
Java – POO
Podemos usar Polimorfismo de três maneiras
diferentes:
Inclusão (Interfaces)
 Paramétrico (Generics)
 Ad-Hoc (Override)

Java – POO
Todo veículo acelera, porém de formas diferentes.
public class Veiculo {
public void acelerar(){};
}
Java – POO
Então teríamos Polimorfismo Ad-Hoc.
public class Bicicleta extends Veiculo{
@Override
public void acelerar(){
System.out.println(“Pedalar”);
System.out.println(“Acelerando...”);
};
}
Java – POO
Podemos usar Polimorfismo com Interfaces.
public interface ServCarros{
public void acelerar();
public void freiar();
}
public class Carro implements ServCarros{
//Classe Carro é Obrigada a escrever a implementação
//dos métodos
}
Java – POO

Polimorfismo é muito utilizado, sua utilização vai de
Sistemas básicos até a construção de Padrões de
Projeto onde o seu uso é feito constantemente.
Composite, Observer, Strategy, Template Method
Download