Disciplina:
Programação Estruturada e Orientada a Objetos
Aula 1
Orientação a Objetos
Apresentação do paradigma Orientado a Objetos.
Alicerce da POO: Herança, Encapsulamento e Polimorfismo.
Professor:
Jorge Felliphe | [email protected]
Apresentação
• O paradigma orientado a
objetos foi idealizado
quando se pensou em
programar/implementar
sistemas de modo mais
simples e abstrato,
tentando aproximar o
código (trabalho de
desenvolvimento) do
mundo real.
Prof. Jorge Felliphe ([email protected])
Vantagem
• Frente ao paradigma estruturado, a POO
(Programação Orientada a Objetos) destaca-se
pela grande abstração e facilidade de reuso e
expansão/manutenção.
• Modelar o mundo real e seu comportamento,
abstraindo-o em OBJETOS é mais prático do
que focar em FUNÇÕES E BIBLIOTECAS...
Prof. Jorge Felliphe ([email protected])
O que seria mais simples dizer?
• “Amanhã irei abrir a porta daquele veículo movido a
combustível, entrarei, me sentarei, darei a partida no
motor, pisarei na embreagem, engatarei a primeira
marcha, acelerarei, controlarei a direção em que o
carro irá se mover utilizando o volante ao mesmo
tempo em que passarei as marchas de acordo com a
velocidade até chegar ao meu trabalho, onde, através
da chave da ignição o desligarei quando estiver parado
na devida vaga do estacionamento”.
• Ou “Vou usar o meu carro para ir ao trabalho amanhã”
Prof. Jorge Felliphe ([email protected])
Abstração
• Na POO, graças a sua ideologia, podemos
abstrair as informações e pensar de forma
simplificada que a mensagem continuará a ser
compreendida!
• CLASSE em POO é um “molde” do que temos
no mundo real e desejamos programar, onde,
à partir dela, instanciaremos (criaremos) os
OBJETOS.
Prof. Jorge Felliphe ([email protected])
Classe e Objetos
• Imagine que desejamos programar o carro:
CLASSE
Carro
Variáveis Internas
(ATRIBUTOS)
Comportamentos
(MÉTODOS)
Prof. Jorge Felliphe ([email protected])
OBJETOS
(instâncias)
Na prática, temos:
Classe
(“molde”)
Carro
String Nome
String Cor
Atributos
(variáveis)
int AnoFabricacao
double Peso
Carro C1
-ATRIBUTOS (características
próprias): Relâmpago
McQueen, vermelho, 2010,
500 kg, 2,1 m, 3,4 m, false.
-MÉTODOS: comportamentos
de um carro.
double Largura
double Comprimento
boolean Guincho
Locomover ( )
Métodos
(comportamento)
Buzinar ( )
FazerManutencao ( )
UsarGuincho ( )
Prof. Jorge Felliphe ([email protected])
Carro C2
-ATRIBUTOS (características
próprias): Mater, marrom,
1815, 800,5 kg, 2,9 m, 4,5 m,
true.
-MÉTODOS: comportamentos
de um carro.
Hora de praticar!
Carro
String Nome
String Cor
int AnoFabricacao
double Peso
double Largura
double Comprimento
boolean Guincho
Locomover ( )
Buzinar ( )
FazerManutencao ( )
UsarGuincho ( )
Prof. Jorge Felliphe ([email protected])
• Vamos tentar implementar
esta classe Carro ao lado e,
dentro do main iremos
instanciar dois carros e
chamar suas
funcionalidades (métodos)!
Programação Orientada e Objetos
• Os três pilares da POO são as seguintes
características/práticas:
– Herança:
• Classes/Objetos podem herdar características de uma
classe-“principal” (classe-mãe). Vantagem: ?
– Encapsulamento
• Classes/Objetos e suas funcionalidades/comportamento são
implementadas e disponibilizadas de forma transparente para o
programador, de modo que o mesmo não precise ler o código para
entender o comportamento, mas apenas se preocupe em saber o que
deve enviar para a classe e que ele pode receber dela.
– Polimorfismo
• Capacidade de uma mesma funcionalidade (método) assumir
comportamentos distintos, ou seja, várias formas (poli-formas).
Prof. Jorge Felliphe ([email protected])
Atividade!
• Vamos implementar o conceito de herança:
– Crie uma classe-“principal” (classe-mãe) denominada
Automovel e crie 5 classes- “secundarias” (classefilha) que herdam os atributos e métodos de
Automovel. Elas podem se chamar Carro, Bicicleta,
Moto, Barco e Aviao.
– Tecnicamente dizemos que a classe Automovel é
super classe de Carro, Bicicleta, Moto, Barco e Aviao,
pois estas herdam a classe Automovel.
Prof. Jorge Felliphe ([email protected])
Dúvidas?
Prof. Jorge Felliphe ([email protected])
Download

Programação Estruturada e Orientada a Objetos