Você está na página 1de 7

Sistemas de Informao - 3 Perodo

Paradigmas de Programao

Captulo 3 Paradigma Orientado a


Objetos
Sumrio
1. Introduo

3. Consideraes finais do paradigma


orientado a objetos

2. Conceitos bsicos do paradigma


orientado a objetos

1. Introduo
O conceito de programao orientada a objeto tem suas razes na SIMULA 67, mas
no foi amplamente desenvolvido at que a evoluo da Smalltalk resultasse na produo de
sua verso 80 (1980). De fato, alguns consideram a Smalltalk a nica linguagem puramente
orientada a objetos.
A idia bsica do paradigma orientado a objetos imaginar que programas simulam o
mundo real: um mundo povoado de objetos. Dessa maneira, linguagens baseadas nos
conceitos de simulao do mundo real devem incluir um modelo de objetos que possam enviar
e receber mensagens e reagir a mensagens recebidas. Esse conceito baseado na idia de
que no mundo real frequentemente usamos objetos sem precisarmos conhecer como eles
realmente funcionam. Assim, programao orientada a objetos fornece um ambiente onde
mltiplos objetos podem coexistir e trocar mensagens entre si.
Um exemplo:
Retire o seu relgio do pulso e comece a analis-lo. Verifique que ele um objeto real,
que lhe d algumas informaes como hora, data e dia da semana e que tem cronmetro e
alarmes. Essas informaes so atributos que so manipulados pelo relgio, ou seja, um
objeto tem atributos.
O relgio tambm tem botes, como um boto de iluminao, um boto para selecionar
o atributo a ser visto, um boto para acertar a hora. Podemos dizer que o acionamento desses
botes corresponde ao acionamento de uma determinada funo do relgio. Logo, um objeto
tem funes (mtodos).
Alm dos botes, o relgio tambm tem uma caixa externa e uma pulseira, ou seja, um
objeto relgio composto de outros objetos. Um objeto pode ser formado a partir de um
conjunto de objetos.
Falamos de um relgio moderno, com alarmes e cronmetros; mas um relgio antigo
s informava a hora; de um relgio de bolso evoluiu-se para relgios de pulso, para relgios de
parede, para relgios com alarmes, com cronmetros etc., ou seja, um objeto pode evoluir de
acordo com uma herana.
Voc tambm sabe que existe uma fbrica de relgios, e que nela esto as
informaes para se construir o relgio. Veremos que uma classe uma fbrica de objetos, e
na classe que se encontram as informaes de como montar o objeto.

Ernani Viriato de Melo

Pgina 1

Sistemas de Informao - 3 Perodo


Paradigmas de Programao

2. Conceitos bsicos do paradigma orientado a objetos


O paradigma orientado a objetos tem uma srie de conceitos que auxiliam as pessoas
a delinearem claramente um problema e a identificarem os objetos e seus relacionamentos. Os
conceitos so: abstrao, objeto, classe, atributos, mtodos, herana e polimorfismo.

2.1 Abstrao
No dicionrio Aurlio, abstrao significa considerar isoladamente coisas que esto
unidas, ou seja, partimos do enfoque global de um determinado problema e procuramos
separar os elementos fundamentais e coloc-los de uma forma mais prxima da soluo. A
idia da abstrao identificar os elementos essenciais de um problema e suas propriedades
fundamentais.
Para orientao a objetos, abstrao o processo de identificao dos objetos e seus
relacionamentos. Ela permite ao programador concentrar-se no que um objeto e faz, sem se
preocupar como ele o faz. A abstrao se d em diferentes nveis: inicialmente, abstrai-se o
objeto; de um conjunto de objetos cria-se um conjunto de classes relacionadas, de um conjunto
de classes cria-se uma biblioteca de classes.

2.2 Objeto (ou Instncia)


Objetos so coisas do mundo real ou imaginrio, que podemos de alguma forma
identificar. Um objeto possui determinadas propriedades que o caracterizam e que so
armazenadas no prprio objeto. As propriedades de um objeto so chamadas ainda de
atributos. Os atributos de um objeto no so estticos, pois sofrem alteraes com o tempo.
Quando temos uma instncia de uma classe, possumos um objeto dessa classe.
Instncia um outro nome que se d ao objeto, geralmente se refere a um objeto especfico.

2.3 Classes
Uma classe um conjunto de cdigos de programao que incluem a definio dos
atributos e dos mtodos necessrios criao de um ou mais objetos.
A classe contm a descrio da forma do objeto, um molde para a criao do objeto,
uma fbrica de objetos. Uma classe tambm um tipo definido pelo usurio.
Classe abstrata: Uma classe abstrata quando no completa e no pode criar
objetos.

2.4 Encapsulamento
Encapsulamento o ato de esconder do usurio informaes que no so de seu
interesse. O objeto atua como uma caixa preta, que realiza determinada operao, mas o
usurio no sabe, e no precisa saber, exatamente como feita. Ou seja, o encapsulamento
envolve a separao dos elementos visveis de um objeto dos invisveis.
Exemplo: um computador um objeto extremamente complexo, mas para o usurio o
que importa o teclado, o monitor, o mouse e o gabinete.

2.5 Atributos (Propriedades/Variveis)


Podemos relacionar alguns atributos (propriedades) a todo objeto. No exemplo do
relgio, a hora e a data. Na programao orientada a objeto, os atributos so definidos na
classe e armazenados de forma individual ou coletiva pelos objetos.
Atributos de classe (coletivos): Quando um atributo dividido entre todos os objetos
daquela classe, ele armazenado na classe.
Atributos de objeto (individuais): Quando um atributo individual, ele armazenado no
objeto.

Ernani Viriato de Melo

Pgina 2

Sistemas de Informao - 3 Perodo


Paradigmas de Programao
2.6 Mtodos (Funes)
Podemos relacionar determinados comportamentos, aes e reaes a um objeto.
No paradigma orientado a objetos, as aes e os comportamentos dos objetos so
descritos pelos mtodos. Ou seja, os mtodos servem para manipular e alterar os atributos do
objeto (alteram o estado do objeto).
Construtor: mtodo que define as inicializaes de valores de atributos para a classe
quando se define um novo objeto.

2.7 Herana (Hereditariedade)


A herana est relacionada s hierarquias e s relaes entre os objetos.
No paradigma orientado a objetos, herana o mecanismo em que uma classe-filha
(classe-derivada) compartilha automaticamente todos os mtodos e atributos de sua classe-pai
(classe-base).
Superclasse: uma superclasse a classe-base de uma hierarquia de classes, a
classe mais alta na hierarquia ( a origem da rvore).

2.8 Polimorfismo
Polimrfico: aquilo ou aquele capaz de assumir mltiplas formas.
Polimorfismo ocorre quando se pode atribuir diferentes significados ou utilizaes para
algo em contextos diferentes por exemplo o nome de uma nica ao pode ser definido sobre
mais de um objeto, podendo assumir diversas implementaes em cada um deles.
Polimorfismo de subclasse a propriedade pela qual uma varivel pode apontar para
objetos de diferentes classes em instantes diferentes.

2.9 Exemplo utilizando C++


OBSERVAO: O intuito deste tpico apenas ilustrar um programa (neste caso
escrito em C++) com o paradigma orientado a objetos. Existe uma disciplina no curso em
especial para o paradigma de programao orientado a objetos.
Exemplo: Considere o objeto Retngulo

Exemplo1: Considere o objeto Cliente:

/* Exemplo 1: Desenvolvendo com P.O.O.


Autor: Ernani
Data: 10/01/2007
*/
#include <iostream>
#include <conio.h>

Ernani Viriato de Melo

Pgina 3

Sistemas de Informao - 3 Perodo


Paradigmas de Programao
// Definir a classe Cliente
class Cliente
{
private: //Atributos
int numCliente;
float saldo;
public: //Metodos
int AcessaNumCliente();
float AcessaSaldo();
void AtualizaSaldo(float NovoSaldo);
//Construtor
Cliente(int _numCliente, float _saldo);
};
//Funcao principal
int main()
{
// Criar um objeto da classe cliente
Cliente objCliente(49,6795.97);
// Exibir valores. /n -> enter
std::cout << "\nSaldo do cliente " << objCliente.AcessaNumCliente()
<< " = " << objCliente.AcessaSaldo() << "\n";
getch();// Aguardar a pessoa digitar alguma tecla
return 0;
}
// Fim de main()

//Construtor
Cliente::Cliente(int _numCliente, float _saldo)
{
numCliente = _numCliente;
saldo = _saldo;
}
// Implementao dos mtodos da classe cliente.
int Cliente::AcessaNumCliente()
{
return(numCliente);
}
float Cliente::AcessaSaldo()
{
return(saldo);
}
void Cliente::AtualizaSaldo(float NovoSaldo)
{
saldo = NovoSaldo;
}

Exemplo 2: Considere os objetos:

Ernani Viriato de Melo

Pgina 4

Sistemas de Informao - 3 Perodo


Paradigmas de Programao

/* Exemplo 2: Desenvolvendo com P.O.O. com heranca


Autor: Ernani
Data: 10/01/2007
*/
#include <iostream>
#include <conio.h>
// Definir a classe Base
class Pessoa
{
protected: /* Atributos acessados pela classe
e pelas classes derivadas. */
char *CPF;
char *DataNascimento;
char *Nome;
public:
//Construtor
Pessoa(char *_Nome);
};
//Definir as classes derivadas
class Aluno: public Pessoa
{
private: //Atributos
int Periodo;
char *RA;
public:
//Construtor
Aluno(char *_Nome, char *_RA, int _Periodo);
//Metodos
char* AcessaNome();
int AcessaPeriodo();

Ernani Viriato de Melo

Pgina 5

Sistemas de Informao - 3 Perodo


Paradigmas de Programao
};
class Professor: public Pessoa
{
private: //Atributos
char *URL;
char *DisciplinasMinistradas;
public:
//Construtor
Professor(char *_Nome, char *_URL,
char *_DisciplinasMinistradas);
//Metodos
char* AcessaNome();
char* AcessaDisciplinasMinistradas();
};
//Funcao principal
int main()
{
// Criar um objeto da classe aluno
Aluno objAluno("Laura","09092006",4);
// Criar um objeto da classe professor
Professor objProfessor("Ernani","http://www.ernani.eti.br",
"Paradigmas de Programacao");
// Exibir valores.
std::cout << "\nAluno " << objAluno.AcessaNome()
<< " esta no periodo " << objAluno.AcessaPeriodo();
std::cout << "\nProfessor " << objProfessor.AcessaNome()
<< " ministra as disciplinas: "
<< objProfessor.AcessaDisciplinasMinistradas() << "\n";
getch();// Aguardar a pessoa digitar alguma tecla
return 0;
}
// Fim de main()

// Implementao dos mtodos.


//Construtores
Pessoa::Pessoa(char *_Nome)
{
Nome = _Nome;
}
Aluno::Aluno(char *_Nome, char *_RA, int _Periodo) : Pessoa(_Nome)
{
RA = _RA;
Periodo = _Periodo;
}
Professor::Professor(char *_Nome, char *_URL,
char *_DisciplinasMinistradas) : Pessoa(_Nome)
{
URL = _URL;

Ernani Viriato de Melo

Pgina 6

Sistemas de Informao - 3 Perodo


Paradigmas de Programao
DisciplinasMinistradas = _DisciplinasMinistradas;
}
//Metodos da Classe Aluno
char* Aluno::AcessaNome()
{
return Nome;
}
int Aluno::AcessaPeriodo()
{
return Periodo;
}
//Metodos da Classe Professor
char* Professor::AcessaNome()
{
return Nome;
}
char* Professor::AcessaDisciplinasMinistradas()
{
return DisciplinasMinistradas;
}

3. Consideraes finais do paradigma orientado a objetos


- Reemprego do cdigo dos objetos, ao invs das subrotinas individuais;
- Biblioteca de objetos: extenso da linguagem de programao utilizada;
- Um objeto uma unidade autocontida de software, capaz de migrar entre aplicaes;
- A herana permite que se crie extenses de objetos existentes para atender s
especificidades do sistema em construo;
- A orientao a objeto permite que se construa bons e maus programas. Sem uma
modelagem bem feita, no h nada que a O.O. possa fazer;
- Entretanto, a orientao a objeto facilita a construo de bons programas, fceis de
construir, de reutilizar e de manter. Desta forma, pode-se obter vantagens significativas no
processo de desenvolvimento de software.

Observao do Autor: Recomendo que estudem bastante o paradigma orientado a


objetos. Em especial as linguagens de programao: Java e .Net (C#)

Ernani Viriato de Melo

Pgina 7

Você também pode gostar