Upload
internet
View
132
Download
11
Embed Size (px)
Citation preview
UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS!
ClassesObjetosHeranç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...
SOFTWAREEstrutura 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