Vous êtes sur la page 1sur 3

Programao Orientado a objetos

1.0 Introduao
O desenvolvimento de software extremamente amplo. Nesse mercado, existem diversas
linguagens de programao, que seguem diferentes paradigmas. Um desses paradigmas a
Orientao a Objetos, que atualmente o mais difundido entre todos. Isso acontece porque se trata
de um padro que tem evoludo muito, principalmente em questes voltadas para segurana e
reaproveitamento de cdigo, o que muito importante no desenvolvimento de qualquer aplicao
moderna.
A POO (programao Orientada a Objetos) foi criada para tentar aproximar o mundo real do
mundo virtual: a idia fundamental tentar simular o mundo real, utilizando abstraes de objetos,
dentro do computador. Assim, o programador responsvel por moldar o mundo dos objetos, e
explicar para estes objetos devem interagir entre si. Esses objetos "conversam" uns com os outros
atravs do envio de mensagens.
Orientao a objetos uma maneira de programar que ajuda na organizao e resolve muitos
problemas enfrentados pela programao procedural. A seguir so apresentados dois conceitos que
so de grande importncai dentro da programao orientada a objetos: herana e polimorfismo.
2.0 Herana
O reuso de cdigo uma das grandes vantagens da programao orientada a objetos. Muito disso se
d por uma caracatersticas conhecida como herana que otimiza a produo da aplicao em
tempo e linhas de cdigo.
Herana um mecanismo que permite que caractersticas comuns a diversas classes sejam
fatoradas em uma classe base, ou superclasse. Na Herana temos dois tipos principais de classe:
1. Classe Base ou superclasse: A classe que concede as caractersticas a outra classe;
2. Classe Derivada ou subclasse: A classe que herda as caractersticas da classe base.
Uma classe derivada geralmente uma implementao especifica de um caso mais geral.
deve apenas definir as caractersticas que a tornam nica.
Observe uma relao de herana no mundo animal. Os animais, sob uma descrio abstrata,
apresentam caractersticas, tais como tamanho, raa. Apresentam tambm aspectos
comportamentais como mover-se, dormir, comer, respirar, etc. Esses caractersticas e aspectos
comportamentais definem a classe dos animais. Analisando os mamferos, que so filhos da
classe animais, veremos atributos, alm dos atributos da classe animal, detalhados e especficos a
ele, como por exemplo, tipo de dente, pelos e coportamento como, por exemplo, mamar. Assim,
podemos afirmar que os mamferos so classificados como uma classe derivada dos animais, que
por sua vez, so uma classe base dos mamferos.
2.1 Tipos de herana
Em herana podemos econtrar trs variaes: extenso, especificao e combinao de extensao e
especificao. Essas variaes so descritas a seguir.
2.1.1 - Extenso
Extenso um tipo de herana onde a subclasse estende a superclasse, acrescentando novos
membros (atributos e/ou mto-dos). Dessa forma, alm das caractersticas presentes na classe base,
caracteristicas especficas na clsse derivada so adicionadas. A superclasse permanece inalterada,
motivo pelo qual este tipo de relacionamento normalmente referenciado como herana estrita.
Veja o seguinte Exemplo 1 que exempla o tipo de herana exteno.
Exemplo 1. A Classe Funcionrio a superclasse e a Classe Gerente subclasse
class Funcionario {
class Gerente extends Funcionario {
String nome;
int senha;

String cpf;
double salario;
// mtodos devem vir aqui

public boolean autentica(int senha) {


// implementao do mtodo } }
}

}
Em todo momento que criarmos um objeto do tipo Gerente, este objeto possuir tambm os
atributos definidos na classe Funcionario, pois um Gerente um Funcionario, alm de ter um
mtodo especfico chamado autentica.
1.4.2 - Especificao
Especicao um tipo de herana onde a superclasse especica o que uma subclasse deve
oferecer, mas no implementa nenhuma funcionalidade.
Veja o Exemplo 2 na linguagem de programao java. Java um tipo de classe chamada
interface que como se fosse um contratato a ser cumprido pela subclasse para implementao de
mtodos.
Exemplo 2. Exemplo de especificaao em Java
interface Autenticavel {
boolean autentica(int senha);
}

class Gerente extends Funcionario implements


Autenticavel {
private int senha;
// outros atributos e mtodos
public boolean autentica(int senha) {
// implementao do mtodo
}

No momento em que a classe Gerente implementa a interface Autentica, aquela precisa escrever os
mtodos pedidos por esta, nesse caso ela obrigada a implementar o mtodo autentica senha. Ou
seja, a interface Autentica especifica o que as suas subclasses Gerente ir implementar.
1.4.2 Combinao de extensao e especificao
No tipo de herana combinao de extenso e especicao a subclasse herda a classe e uma
implementao padro de (pelo menos alguns) mtodos da superclasse. A subclasse pode ento
redenir mtodos para especializar o comportamento em relao ao que oferecido pela
superclasse, ou ter que oferecer alguma implementao para mtodos que a superclasse tenha
declarado, mas no implementado.
3.4 Polimorfismo
Como sabemos, as classes filhas herdam as caractersticas (atributos) e aes (mtodos) de
seus ancestrais. Entretanto, em alguns casos, necessrio que as aes para um mesmo mtodo
seja diferente.
Polimorfismo significa muitas formas e em POO o princpio pelo qual duas ou mais
classes derivadas de uma mesma superclasse podem invocar mtodos que tm a mesma
identicao (assinatura) mas comportamentos distintos, especializados para cada classe
derivada. Em outras palavras, o polimorfismo consiste na alterao do funcionamento interno de
um mtodo herdado de um objeto pai.
Existem quatro tipo de polimorfismo
incluso, paramtrico, sobreposio/sobrescrio, sobrecarga
Nem todas as linguagens de programao implementam todos os tipos de polimorfismo. A seguir
so vistos dois tipo de polimorfismo com mais detalhes.

3.4.2 sobreposio
Sempre que tiver uma classe que herde o mtodo de uma superclasse, poder sobrescrever esse
mtodo. O beneficio chave da sobrescrio o recurso de definir um comportamento que seja
especifico de determinado tipo de subclasse.
Exemplo 3. Exemplo de sobreposio em java
1.public class Animal {
2.void comer(){
3. System.out.println("Animal comendo...");
4.}

1.class Dog extends Animal{


2.//Dog sobrescreveu o mtodo comer
3.void comer(){
4. System.out.println("Dog comendo...");
5.}
6.}

O Exemplo 3, escrito em java, demonstra a subclasse Dog que herda a classe Animal
sobrescrevendo o mtodo comer ( ) (linha 3 e 4, respectivamente) dessa classe.
3.4.3 Sobrecarga
Este tipo de polimorfismo permite a existncia de vrios mtodos de mesmo nome, porm
variando no nmero e tipo de argumentos. Veja o Exemplo 4 que mostra um exemplo de
sobrecarga na linguagem Java.
Exemplo 4. Exemplo de sobrecarga na linguagem java
1.public class Animal {
2.void comer(int x, String s) {
3. System.out.println("Animal comendo...");
4.}
5.}

1.class Dog extends Animal {


2.
void comer(int x, float s) {
3. System.out.println("Dog comendo 1...");
4.}
5.
6.void comer(int x, double s) {
7. System.out.println("Dog comendo 2...");
8.}
9.}

No exemplo acima, a classe Dog, que um subclasse de Animal, sobrecarrega o mtodo comer,
pois muda o tipo de dados da varivels dos argumetos presente no mtodo. A deciso sobre qual
mtodo ser chamado quando existirem dois ou mais mtodos com o mesmo nome ser feita pelo
compilador, que verificar se os tipos de dados passados como argumentos casam com alguma das
assinaturas daquele mtodo.
Referncias
DEITEL, H. M. Java: Como Programar. 6. ed. So Paulo: Pearson Prentice Hall, 2005.
SIERRA, K.; BATES, B. Certificao Sun para Programador JAVA 5 Guia de Estudo.Rio
de Janeiro: Alta Books. 2006.

Vous aimerez peut-être aussi