Вы находитесь на странице: 1из 6

Conceitos De Orientao a Objeto em Java

1-Classe Abstrata
Uma classe abstrata desenvolvida para representar entidades e conceitos abstratos. A classe abstrata sempre uma superclasse que no possui instncias. Ela define um modelo ( template) para uma funcionalidade e fornece uma implementao incompleta - a parte genrica dessa funcionalidade - que compartilhada por um grupo de classes derivadas. Cada uma das classes derivadas, completa a funcionalidade da classe abstrata adicionando um comportamento especfico.

package aula_abstrata; public class Tv private int private int private int /** extends Eletrodomestico { tamanho; canal; volume;

// abaixo teramos todos os mtodos construtores get e set...

* @return the tamanho */ public int getTamanho() { return tamanho; } /** * @param tamanho the tamanho to set */ public void setTamanho(int tamanho) { this .tamanho = tamanho; } /** * @return the canal */ public int getCanal() { return canal; } /** * @param canal the canal to set */ public void setCanal(int canal) { this .canal = canal; } /** * @return the volume */ public int getVolume() { return volume; } /** * @param volume the volume to set */ public void setVolume(int volume) {

this .volume = volume;

public Tv(int tamanho, int voltagem) { super (true, voltagem); // construtor classe abstrata this .setTamanho(tamanho); this .setCanal(canal); this .setVolume(voltagem); } /* implementao dos mtodos abstratos */ public void desligar() { super .setLigado(false); setCanal(0); setVolume(0); } //construtor public void ligar() { super .setLigado(true); setCanal(3); setVolume(25); }

2-Classe Encapsulamento: Em linguagens orientadas a objetos, possvel encapsular o estado de um objeto. Em termos prticos, isso se realiza limitando o acesso a atributos de uma classe exclusivamente atravs de seus mtodos. Para isso, as linguagens orientadas a objeto oferecem limitadores de acesso para cada membro de uma classe. Tipicamente os limitadores de acesso so: pblico (public) - o membro pode ser acessado por qualquer classe. Os membros pblicos de uma classe definem sua interface protegido (protected) - o membro pode ser acessado apenas pela prpria classe e suas sub-classes privado (private) - o membro pode ser acessado apenas pela prpria classe Exemplo: public class Pessoa { private String nome;

public String getNome() { return nome;

public void setNome(String nome) { this.nome = nome; }

//construtor da classe public Pessoa(String nome){ this.setNome(nome); } }

3-Classe Heran a A herana um relacionamento pelo qual uma classe, chamada de sub-classe, herda todos comportamentos e estados possveis de outra classe, chamada de super-classe ou classe base. permitido que a sub-classe estenda os comportamentos e estados possveis da super-classe (por isso este relacionamento tambm chamado de extenso). Essa extenso ocorre adicionando novos membros a sub-classe, como novos mtodos e atributos. tambm possvel que a sub-classe altere os comportamentos e estados possveis da super-classe. Neste caso, a sub-classe sobrescreve membros da super-classe, tipicamente mtodos. Quando uma classe herda de mais de uma super-classe, ocorre uma herana mltipla. Esta tcnica possvel em C++ e em Python, mas no possvel em Java e C?, no entanto estas linguagens permitem multipla tipagem atravs do uso de interfaces Exemplo public class Filho extends Pessoa { private String idade;

public String getIdade() { return idade; }

public void setIdade(String idade) { this.idade = idade; }

//construtor public Filho(String nome, String idade){ super(nome); this.setIdade(idade); } }

4-Classe Polimorfismo: O polimorfismo caracterizado quando duas ou mais classes distintas tem mtodos de mesmo nome, de forma que uma funo possa utilizar um objeto de qualquer uma das classes polimrficas, sem necessidade de tratar de forma diferenciada conforme a classe do objeto.
Uma das formas de implementar o polimorfismo atravs de uma classe abstrata, cujos mtodos so declarados mas no so definidos, e atravs de classes que herdam os mtodos desta classe abstrata.

package aula_Poliformismo; public abstract class OperacaoMatematica{

// unico metodo da classe public abstract double calculo(int x, int y); } package aula_Poliformismo; public class Soma extends OperacaoMatematica{ // unico metodo da classe public double calculo(int x, int y){ return x+y; } //construtor public Soma(){ }

} package aula_Poliformismo; public class Diferenca extends OperacaoMatematica{ // unico metodo da classe public double calculo(int x, int y){ return x-y; } //construtor public Diferenca(){ }

package aula_Poliformismo; public class aplicacaoPoliformismo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub double resultado; Soma soma = new Soma(); resultado = soma.calculo(1, 3); System.out.println("Resultado: "+resultado); Diferenca dif = new Diferenca(); resultado = dif.calculo(1, 4); System.out.println("Resultado: "+resultado); } }

5-Classe Interface Uma interface modela um comportamento esperado. Pode-se entend-la como uma classe que contenha apenas mtodos abstratos. Embora uma classe no possa conter mais de uma super classe, a classe pode implementar mais de uma interface. package aula_Interface; public interface Peso { //prototipo de um metodo abstrato public double obterPeso();

} package aula_Interface; public interface Cor { //prototipo de um metodo abstrato public String obterCor(); } package aula_Interface; public class Animal implements Peso, Cor{ public void Barulho(){ System.out.println("ahhhhhhhhhhhh"); } ////Implementao dos metodos abstratos public String obterCor(){ return "vermelho"; } //Implementao dos metodos abstratos public double obterPeso(){ return 100; } } package aula_Interface; public class aplicacaoInterface { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Animal animal = new Animal(); animal.Barulho(); System.out.println("Peso: "+animal.obterPeso()); System.out.println("Cor: "+animal.obterCor()); } }

Вам также может понравиться