Programação Orientada a Objetos
Por: Ricardo Zortea Reis • 27/6/2016 • Resenha • 1.745 Palavras (7 Páginas) • 276 Visualizações
Programação orientada a objetos
A programação orientada por procedimento, paradigma mais popular na década de 70 concentra-se em subprograma e bibliotecas de subprogramas. Nela os dados são enviados ao subprograma para computação. Ex: classificação de um array de inteiros o vetor é enviado como parâmetros a um subprograma que o classifica.
Já a orientação a objetos é um método de implementação no qual os programas são organizados como um conjunto de objetos cooperantes sendo cada objeto um representante de uma determinada classe e as classes organizadas através de uma relação de heranças. Tem suas raízes na LP simula 67 e foi amplamente desenvolvida após a LP smalltalk 80 uma LP 00 deve oferecer:
- Tipos de dados abstratos (classes)
- Herança
- Um tipo especial de vinculação dinâmica (polimorfismo)
São abstrações de objetos do mundo real.
Cada classe deve representar um conceito. Ex: pessoa , veículos .
Um conceito pode ser descrito por atributos ex: nome, idade.
Os atributos podem sofrer operações ex: leitura, adição.
Dados + comportamento especificados em um mesmo modulo > classes.
Objetos são instancias de classes.
Procedural em c
Typedef struct {
char* nome;
int idades;
}pessoa;
Pessoa p1;
Pessoa aniversario(pessoa p){
p.idade = p.idade +1;
return pessoa;
}
Void main(){
Pessoa p1;
P1.nome = “ana”;
P1.idade = 20;
P1 = aniversario (p1);
}
Orientada a objetos
Class pessoa{
String nome;
Int idade;
Pessoa(string,n,int i){
Nome = n;
Idade = i;
}
Void aniversario (){
Idade = idade + 1;
}
}
Public static void main (){
Pessoa p1 =
New pessoa (“ana”,20)
P1.aniversario();
}
Todos os objetos são instâncias de classes, são variáveis dinâmicas criadas a partir das classes.
Podem ser criados e destruídos.
As invocações de métodos descritos nas classes atuam sobre os objetos. São ativações de métodos em um objeto e são chamados de mensagens.
A interface de um objeto é o conjunto de serviços oferecidos por ele são os métodos da classe de objetos compartilhados entre todos os objetos da classe.
Um método é uma abstração procedimental cada objeto quando instanciado, ocupa espaço na memória para seus dados.
Os valores dos atributos do objeto definem seu estado. Vários objetos podem ser criados a partir de uma mesma classe.
Cada objeto possui uma identidade e um tipo (classe).
A interação entre objetos se da através de mensagens trocadas através da interface (ou protocolo) especificado para o objeto pela sua classe .
Ex:
ContaBancaria é uma classe
- a conta de Maria e João são instancia.
Conta bancaria |
-Nome -Saldo |
+sacar +depositar +consultar |
Nome João Saldo 200 | Nome Maria Saldo 100 |
Pessoa |
-nome -idade -sexo |
+apresentar |
P1: Pessoa |
Nome:"ana" Idade:20 Sexo:"f" |
P2:Pessoa |
Nome:jose Idade:35 Sexo:"m" |
p1.apresentar()"Ana,20,mulher"
p2.apresentar()//Jose,35,homem
HERANÇA
Estabelece hierarquias entre as classes. a base da herança se da pela transmissão de atributos e métodos aos descendentes, ou seja, uma classe herda as propriedades de sua classe pai (ou classe base). esse comportamento pode ser alterado pelo controle de acesso.
Ex: professor é uma pessoa
aluno é uma pessoa
[pic 1]
[pic 2]
classe base
super classe[pic 3]
classe derivada [pic 4][pic 5][pic 6][pic 7][pic 8][pic 9][pic 10][pic 11][pic 12]
Uma classe derivada pode acrescentar novos atributos e métodos, e também modificar os métodos herdados, com o propósito de oferecer um comportamento mais especifico aos objetos da classe herdada.
um método modificado tem o mesmo nome e protocolo do herdado e sobrepoe-se coverride a versão herdada.
Class Pessoa{
string nome;
void apresentar(){
print (nome);
}
}
Class Aluno extends Pessoa{
int ra;
}
Pessoa p1 = new Pessoa()
p1.nome = "joao"// má pratica [encapsulamento]
...