Orientação a Objetos
Prof. Elisângela Xavier
Paradigmas 1968
Engenharia de SW surge em repulsa à crise de software
Dijkstra – programação estruturada 1978
Codd – modelo relacional Niklaus Wirth – desenvolve Pascal Ritchie – desenvolve C Tom de Marco – populariza Análise Estruturada
Engenharia de Software
É uma área do conhecimento da computação voltada para a especificação, desenvolvimento e manutenção de sistemas de software aplicando tecnologias e práticas de gerência de projetos e outras disciplinas, objetivando organização, produtividade e qualidade.
Paradigmas Atualmente
A complexidade A urgêngia e a adaptabilidade dos novos
aplicativos Repensar...
prós e contras dessa abordagem
Paradigmas Entrega de sw no prazo Dentro do orçamento Sem falhas Algo a mais!
Histórico da Orientação a Objetos Simula
modelagem de simulações e baseada na ling ALGOL 60
Conceitos de classes, encapsulamento e herança
SmallTalk Surge em 1970 e disponibilizada em 1980 Solidifica conceitos de classes, atributos,
métodos, objetos, encapsulamento, herança e mensagem
Linguagens Orientadas a Objetos Objetive-C – linguagem híbrida C++ - linguagem híbrida Object Pascal – linguagem híbrida Eiffel – 1986 – linguagem pura Java – 1995 - linguagem híbrida
Eiffel
Eiffel é uma Linguagem de Programação avançada, puramente orientada a objeto que enfatiza o projeto e construção de software reusável e de alta qualidade. Toda a estrutura da programação em Eiffel é baseada em classes.
Orientação a ObjetosConceitos de Orientação a Objetos Introdução Objeto Classes Encapsulamento Herança Polimorfismo
Orientação a Objetos
Introdução:
Que características similares você identificaria nesses veículos?
Orientação a Objetos Características similares....
Modelo Cor Fabricante Ano de Fabricação Chassis Placa Tipo de Combustível Número de Portas Etc...
Orientação a Objetos Como se calcula um seguro total para
cada um desses veículos?
Para qual seguradora?
Segurado é do sexo feminino?
Segurado tem garagem?
Orientação a Objeto Até hoje foco da modelagem
concentrou-se nas funcionalidades de um sistema
Módulos distintos atuavam diretamente sobre a base de dados
Orientação a Objeto Quando qualquer alteração é feita
nessas bases, diversos módulos eram afetados
Erros advindos dessas alterações só eram percebidos semanas mais tarde
Orientação a Objeto Vantagem na OO
Podermos abstrair de uma maneira mais fidedigna as situações do dia-a-dia
Orientação a Objeto Esta abstração é feita por
representações do mundo real, chamadas de
Orientação a Objeto Só precisamos voltar a praticar o
conhecimento que possuíamos desde a nossa infância:
Identificar OBJETOS e seus COMPORTAMENTOS, o que possibilita
que sejam CATEGORIZADOS
OBJETO
Exercitamos a percepção de um bebê fornecendo-lhe objetos de cores, texturas ou formas diferentes
OBJETOAo olharmos uma
caneta, independentemente de seu formato ou cor da
tinta, conseguimos identificá-la
OBJETONa concepção de sistemas, um objeto é
qualquer coisa existente no mundo real, em formato concreto ou abstrato.
OBJETOExemplos de objetos:
aluno, professor, mesa, cadeira, caneta, automóvel, disciplina, estoque,
avaliação, seguro, janela do Windows, botão, caixa de diálogo, etc...
ObjetoOs objetos possuem características ou propriedades que são seus ATRIBUTOS
Atributos do objeto Omar
Nome: Omar Ido
Endereço: Rua São Benedito, 13
Sexo: Masculino
Data de Nascimento: 06/06/1966
Altura: 1,75m
Peso: 70 kg
Estado Civil: casado
Cor dos Olhos:.. Castanho
Cor dos Cabelos: Castanho
Etc...
ObjetoOs objetos possuem comportamentos que
modificam seu estado ou prestam serviços a outros objetos.
Estamos falando de suas OPERAÇÕES
OBJETO
Se um funcionário possui o atributo Salário, este deve
ser atualizado por operações do tipo reajustarSalário
OBJETOAtributos
Nome: Pedro Rocha
Cargo: Gerente
Salário: R$ 6.500,00
Data Admissão: 15/06/2003
etc...
Operações
reajustarSalário
obterSalárioLíquido
obterTempoServiço
etc...
OBJETO
Os métodos de uma classe manipulam as estruturas de dados daquela classe, ou seja, não podem acessar diretamente os dados de outra classe
Uma classe tem conhecimento de outra, pela solicitação de serviços (execução de operações)
Esta solicitação denomina-se MENSAGEM
OBJETO Exemplo de mensagem
Informar a idade do objeto Pedro, chamando a operação calcularIdade
OBJETO
Quando pensamos em um objeto, devemos fazê-lo dentro de um determinado contexto
OBJETO
Devemos abstrair as informações de um objeto dentro do papel que ele exercerá num determinado sistema, ou seja, seu ambiente determinará o limite da modelagem de cada objeto
OBJETO Se pensarmos em todos os atributos
que identificam uma pessoa, chegaremos a um número considerável
Se modelarmos um objeto Pessoa no papel de um aluno não precisaremos incluir atributos do tipo: altura, peso, cor dos olhos, cor dos cabelos, cor da pele e muitos outros
OBJETO Todos os objetos tem IDENTIDADE e são
diferentes um dos outros, pois ocupam espaços distintos.
Identidade significa que os objetos se distinguem por sua própria existência e não pelos valores de seus atributos
OBJETO Exemplo de identidade
Numa linha de montagem são produzidos 100 lápis
Com as mesmas características Mas, possuem identidades diferentes Pois fisicamente são diferentes
OBJETO Atualmente temos uma demanda de
Aplicações Gráficas e é comum a modelagem ou manipulação de objetos como: Janelas Botões Caixa de diálogo Menus Etc...
OBJETO Vamos exercitar nossa capacidade de
abstração...
Pense numa figura geométrica, RETÂNGULO, por exemplo, Vamos identificar atributos e operações
para este objeto...
OBJETO Atributos
Altura Largura Cor da linha Tipo da linha Cor de preenchimento
OBJETO O que determina os atributos de um objeto é o contexto com o qual estamos
trabalhando
OBJETO Operações
Desenhar Pintar Mudar Cor da Linha Mudar Tipo da Linha Redimensionar Mover ...
OBJETO Vocês repararam que essas ações são
quase sempre auto-executáveis? O retângulo não vai desenhar algo O retângulo vai desenhar a si próprio O retângulo conhece melhor do que
ninguém como ser desenhado
CLASSES Características e operações similares
em objetos distintos Classificação Identificando classes
CLASSES
nome: Omar Idosexo: masculinodataNasc:
06/06/1966estCivil: casado
Objeto Omar
nome
sexo
dataNasc
estCivil
Classe Pessoaé do tipo
AtributosAtributos
CLASSES
Classes Objetos
FuncionárioAna CristinaGustavo
EmpresaCasa de Festas BPSoftware Ltda.
Veículo AudiBora
ENCAPSULAMENTO Deve depender da interface
E não da implementação Proteção de seus atributos e algumas
operações Interface serve como intermediária
entre a classe e o mundo externo
ENCAPSULAMENTO
Classe como uma caixa
preta
obterIdade
reajustarSalário
calcularFérias
calcularRecisãoInterface da Classe
HERANÇA
Classe Pessoa atributos: nome, endereço, sexo operações: calcularIdade
Classe Aluno atributos: matrícula, curso operações: matricularAluno
Classe AlunoEscTecnica atributos: notaVestibular
POLIMORFISMO
FuncionáriocalcularSalário(mêsReferência: integer)
Professor
calcularSalário(mêsReferência: integer)