2. Estudos de Hoje
• Compreender o paradigma da orientação a
objetos:
– Conhecer os problemas da programação
estruturada e o surgimento da POO
– Estudar os principais conceitos relacionados à
POO
– Conhecer as estruturas básicas de programação
relacionadas ao paradigma dentro da linguagem
Java
3. Programação Estruturada
• Consiste na utilização de estruturas básicas de
programação
– Estruturas de controle de seleção, repetição, etc.
• Linguagens de programação mais antigas foram
construídas em cima do paradigma da PE
– Pascal, Delphi, Visual Basic, etc.
• Permite construir com facilidade a lógica dos
programas
• Foca-se na lógica e não nos dados
4. Programação Orientada a Objetos
• A POO foca-se nos dados, aproximando o conceito que
temos do mundo real para a programação
• Usa objetos para ocultar informações que não devem ser
vistas ou são desnecessárias a outros objetos
• As linguagens mais recentes foram fundamentadas no
paradigma OO
– Java, .NET (C# e VB .NET), Ruby, etc.
• A maior vantagem da POO é o reuso de código
(flexibilidade e manutenção)
5. Principais Conceitos POO
• A POO é baseada em 3 conceitos principais:
– Encapsulamento
– Herança
– Polimorfismo
• Os três conceitos são suportados pelas
linguagens de programação e são facilmente
implementáveis
• Porém, existe um conceito que rege esses 3
conceitos: abstração
6. Abstração
• É a habilidade de raciocinar OO
• A abstração não é um conceito implementável, pois
depende do problema abordado e da visão do
programador para resolver esse problema
• O programação deve utilizar a abstração para se concentrar
nos principais aspectos que irão formar o objeto ou o
método
• A função da abstração é dar suporte ao reuso de elementos
de software
7. Encapsulamento
• Visa esconder detalhes da programação e só fornecer o
que for realmente relevante
• A comunicação entre os objetos deve ocorrer através de
métodos
• Isso dá mais flexibilidade ao programa, permitindo que
modificações futuras possam ser realizadas mais facilmente
• O encapsulamento colabora para a reutilização de código
9. Herança
• Outro conceito é a herança, ou seja, receber algo que
alguém está transmitindo a você
• A herança possibilita a criação de novas classes a partir de
classes já existentes
• A classe-base é a classe que suportará todas as classes
derivadas dela, fornecendo atributos, métodos e outros
objetos.
• A herança é uma funcionalidade que permite que novas
classes sejam criadas a partir de uma classe já
existente, dando suporte ao reuso de código já programado
11. Polimorfismo
• O polimorfismo está relacionado à herança.
– Não existe polimorfismo se não houver herança.
– Os conceitos estão intimamente relacionados.
• Polimorfismo significa “muitas formas”, ou seja, é uma
propriedade que permite que os objetos tenham muitas
formas ao longo do programa.
• O polimorfismo pode ser utilizando tanto para métodos
como para classes
– Os métodos podem ser reescritos a partir da classe-base
– As classes podem mudar sua forma também a partir da classe-
base