Introdução e Conceitos Janaina Scal Duia Castello Programação Orientada a Objetos – POO
Introdução e Conceitos
Janaina Scal Duia Castello
Programação Orientada a Objetos – POO
Evolução das LP
• Primeiro projeto de computador de uso geral– Por Charles Babbage,
1837
– Primeira programadora: Ada Lovelace.
• 100 anos depois aparece o primeiro computador de uso geral
Evolução das LP
• Primeiras LP
– Traduzem a linguagem de máquina (bits) para uma mais compreensível
– Ex.: Assembly
• Foco na eficiência computacional
– Memória
– Processamento
– Ex.: FORTRAN
Evolução das LP
• Anos 60:
– Eficiência computacional deixa de ser problema
• Muda o foco das LP
– Eficiência dos programadores
– Paradigma Estruturado:
• Ex: Pascal e C
– Conceitos de modularização
• Ex.: MODULA e ADA
Paradigmas
“É um conjunto de características que servem para caracterizar um conjunto de linguagens”
Flávio Miguel Varejão
Paradigma Estruturado
É uma forma de programação de computadores que preconiza que todos os programas
possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e interação”
Michael A. Jackson
Modularização
Evolução das LP
• Anos 80 e 90:
– Computadores Pessoais
• Muda o foco das LP novamente
– Menor período de desenvolvimento
• Reutilização de códigos
– Manutenção.
– Surge a POO
• Ex.: Java, C++ e SMALLTALK
POO
• Baseia-se nos conceitos:
– Classe e subclasse
• Hierarquia
– Herança
• Reutilização de códigos
– Encapsulamento
• Abstração
• Segurança de informação
– Polimorfismo
Herança
Herança
“É a propriedade dos objetos que permite a criação de uma hierarquia entre eles, onde os
descendentes herdam o acesso ao código e estruturas de dados dos seus ancestrais.”
Jackson Laskoski
Classe
• Estrutura modular que descreve um conjunto de dados estruturados, atributos, e as funções capazes de manipulá-los, métodos.
• É caracterizada por
– nome
– superclasse
– atributos
– métodos
Superclasse e subclasse
• Para uma classe ser uma subclasse de outra, esta deve conter todos os atributos e métodos de sua superclasse, mas estes não precisam ser idênticos.
Superclasse e subclasse
Outras relações entre classes
Objetos• São elementos de uma classe
• Só podem acessar métodos
de sua classe ou superclasses
– Passagem de mensagens
a objetos
Polimorfismo
“É a propriedade de uma ou mais classes
responderem a mesma mensagem cada uma
de uma forma diferente”
Jackson Laskoski
Herança e polimorfismo
Encapsulamento
“É a capacidade de ocultar dados dentro de modelos, permitindo que somente operações especializadas ou dedicadas manipulem estes
dados ocultos.”
R. Santos
Encapsulamento
• Uso de funções privadas e públicas
– Privadas: só a classe pode executar
– Pública: qualquer classe pode executar
• Herança só se aplica a métodos públicos!
• Atributos privados
– Só os métodos das classes podem modificá-los.
– Protege contra erros de programação.
Encapsulamento
Encapsulamento
• Abstrai de como os métodos são implementados
– Usuário só sabe como passar os parâmetros e qual o tipo de retorno
– Conceito de caixa preta
– Facilidade na manutenção
Comparações
• Melhora a manutenção
• Melhor a compreensão dos programas
• Menos eficiente que outros paradigmas– Pouco relevante devido ao auto poder de
processamento atual
• Desafio da mudança – Surgiu na década de 70 mas só foi ser utilizada nos
últimos anos
– Depende do método procedural
Duvidas?