UMA ABORDAGEM SOBRE
ORIENTAÇÃO A OBJETOS!
Classes
Objetos
Herança
Polimorfismo
Histórico.
• Linguagens orientadas a objetos só foi
possível devido a ao avanço na
arquitetura dos computadores.
• Assim sofisticados ambientes de
programação puderam ser criados.
Mas qual a vantagem???
• De uma forma geral o conceito da POO
nos leva a simular o mundo real, então o
seu entendimento pode nos ser mais
intuitivo.
• A vantagem de uma linguagem orientada
a objetos é diretamente ligada com o
reaproveitamento de código.
Quais os conceitos ?
•
•
•
•
Temos que entender o conceito de classe.
O conceito de objetos.
O conceito de herança.
O conceito de Polimorfismo.
Definição de Objetos
fundamentados em Classes.
Representa uma entidade.
FÍSICA  carro, casa, bicicleta...
CONCEITO processo quimico, matricula...
SOFTWAREEstrutura de dados...
Como é construído um Objeto?
• Não há como construir um objeto, sem antes
mostrar o que é uma classe.
• CLASSE.
• Uma classe é um modelo.
• Mostra como será um determinado objeto.
• Uma classe só contém atributos e métodos.
• Atributo é o que sabemos de uma classe, é o
estado que terá o objeto.
• Métodos são os comportamentos que um
objeto, terá, será o que ele sabe fazer.
O QUE OS OBJETOS FAZEM?
Se comunicam, por meio de mensagem.
Mas um objeto trás a idéia de
Que?
• Como um objeto é baseado em um modelo,
podemos apresentar a seguinte explicação.
• Pegaremos uma roda de um carrinho de bebê, é
uma roda pequena de borracha maciça, com
aro em plástico.
• Pegaremos agora uma roda de carriola, onde
temos um pneu de borracha com câmara de ar,
e aro em ferro orbital, ou raiada.
E as rodas de um carro?
AS RODAS DO CARRO.
• Opa!!! estão em ordem, e também são rodas.
• Todas tem uma função em comum, e servem
para efetuar o deslocamento de alguma
entidade de um lado a outro.
• Perceba que, cada roda tem o seu estado
especifico, tais como tipo de material, tamanho,
etc... porém todas tem o mesmo
comportamento, sabem fazer a mesma coisa,
que é RODAR.
POR FALAR EM CARRO...
– Não estamos na matrix – Para quem assistiu, viu a
parte, onde o oráculo diz ao Neo que “a colher não
exite”.
– Mas podemos afirmar que :
– O CARRO NÃO EXISTE.
– Pois o mesmo é composto de varias partes, vários
objetos, e no final acabamos compondo o carro.
JÁ SABEMOS O QUE É UM
OBJETO, E AGORA?
• Para que serve um objeto?
• Bom um objeto serve para se comunicar
uns, com os outros, com a finalidade de
construir algo maior, ok.
• E no mundo real???
• Em um projeto de sistema real??
Está na hora de sabermos de
Herança.
• Herança serve para efetuar a reutilização
da estrutura.
• Vamos lá:
• Uma classe ANIMAL, com suas
particularidades, ATRIBUTOS.
• Nome da classe Mãe: Animal.
• Atributos da classe: Tipo, peso, tamanho.
Sub-Classe CÃO da classe MÃE
ANIMAL.
• A classe Filha,(CÃO) classe que herda as
particularidades da classe mãe deve ser
capaz de responder a seguinte questão
para ser considerada filha.
• CÃO É – UM ANIMAL?
Cão sabemos que sim, é um animal.
Então existe, ligação de herança entre
Animal e Cão.
Um exemplo de Herança.
public class Animal{
private float peso;
private String tipo;
private float tamanho;
encapsulamento de Get/Set para os atributos.
public void comer(){
System.out.println(“Este animal come.”);
}
public void dorme(){
System.out.println(“Este animal dorme.”);
}
}
Classe Filha Cão.
public class Cão extends Animal{
//*Essa classe tem todos os atributos e
métodos da classe Animal, podemos mudar métodos
da
classe aqui na classe filha com um conceito chamado de sobrecarga e sobrescrita.
*//E ainda podemos escrever mais métodos.
public void morder(){
System.out.println(“O cão morde mesmo!”);
}
// sobreescrevendo
public String comer(String comendo){
String come = comendo;
System.out.println(“Este animal come CARNE!!!”+come);
return (come);
}
}
POLIMORFISMO.
• Seus operandos podem assumir mais de
um tipo.
• Ou seja serve para promover a
reutilização de código.
• Por exemplo para construirmos um código
100% reutilizável, podemos fazer uso
classes Abstratas e Interfaces.
Vamos descrever Classe Abstrada.
• Uma classe abstrata, possui atributos, e
métodos com nenhuma ou uma mínima
implementação.
• Seus métodos terminam com ponto e
vírgula, não possuindo chaves como em
um método concreto.
Uma classe abstrata.
// A classe abstrata possúi métodos
genéricos e quem for usar a classe terá que
estender a classe, e implementar o método,
como for necessário.
public abstract class Animal{
public void comer(String c);
public void dorme(String d);
}
Estendendo a classe abstrata.
• public Cao extends Animal{
public void comer(String c){
String comer = c;
system.out.println(“O cão come :”+comer);
}
public void dorme(String d){
String dorme = d;
system.out.println(“O cão dorme na:”+dorme);
}
// Podemos agora escrever um código próprio da classe Filha Cão
public void brincar(String brinc){
String brincar = brinc;
system.out.println(“O cão brinca de :”+ brincar);
}
}
Interface
• Implementação de um contrato.
• Temos que implementar todos os, métodos nela contida.
Implementando uma Interface.
public interface Relogio {
public String getHoras();
}
------------------------------------------------------public interface Radio() {
public void liga();
public void desliga();
public void trocaEstacao(int frequencia);
}
-------------------------------------------------------
Final Interface.
public class RadioRelogio implements Radio, Relogio {
// Inicializa objeto
}
public String getHoras() {
return horarioAtual;
}
public void liga() {
// Implementacao
}
public void desliga() {
// Implementacao
}
public void trocaEstacao(int frequencia) {
// Implementacao
}
}
Final.
• Com o uso de interface podemos
reaproveitar códigos, de maneira bastante
eficiente.
• DÚVIDAS???
• Autor: Moacir Mardegan
• Criado em 24/05/2012
Download

UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS!