Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetos
Sumário: Classes, Objetos, Atributos,
Métodos, Encapsulamento, Herança,
Polimorfismo.
Introdução
O aumento da complexidade das aplicações implicou
que o software ficasse mais caro e exigiu aos
programadores uma maior capacidade de adaptação
às novas linguagens e sistemas operativos que iam
surgindo. As aplicações tornaram-se mais procuradas,
é certo, mas também mais dispendiosas e com menor
qualidade. Tornou-se urgente encontrar uma forma
de aumentar a produtividade dos programadores, isto
é, de fazer com que existisse a possibilidade de se
utilizar parte de determinadas aplicações noutras,
empregando basicamente as mesmas ideias, o
mesmo código e os mesmos objetos.
Introdução
A tecnologia que foi capaz de lidar com este problema foi a
POO. As características deste tipo de programação foram
particularmente bem sucedidas, na medida em que
simplificaram consideravelmente projetos que até então eram
extremamente complexos e difíceis de estruturar. Este novo
sistema veio conceber técnicas e conceitos de programação
completamente diferentes. Um programa deixou de consistir
apenas num conjunto de instruções que visava o desempenho
de uma tarefa específica e passou a ser definido como um
conjunto de instruções e de objetos que interagem entre si,
onde cada elemento preserva a sua individualidade e
desempenha um papel especial na execução de uma tarefa.
POO
A programação orientada a objetos é um paradigma de
programação que se centra na noção de objeto, ao
contrário da programação tradicional que é centrada no
conceito de procedimento. A POO utiliza objetos e não
algoritmos como bloco lógico fundamental.
A orientação a objetos é uma tecnologia que enxerga os
sistemas como sendo coleção de objetos integrantes. Ela
permite melhorar a reusabilidade e extensibilidade dos
softwares. A tecnologia orientada a objetos é
fundamentada no que, coletivamente, chamamos de
modelo de objetos, que engloba os princípios da abstração,
hierarquização, encapsulamento, classificação,
modularização, relacionamento, simultaneidade e
persistência.
POO
A POO é essencialmente um estilo de programação, de certa
forma independente da linguagem de programação. Ela é
um método ou forma de desenvolver código e
consequentemente software. Enquanto nas linguagens
procedimentais, como caso da linguagem C,
desenvolvemos códigos e funções identificando as variáveis
recorrendo somente a um comportamento, numa
linguagem orientada a objetos podemos ir mais longe e
representar qualquer objetos do dia-a-dia. A proposta da
orientação a objetos é representar o mais fielmente
possível as situações do mundo real nos sistemas
computacionais. Nos entendemos o mundo como um todo
composto por vários objetos que interagem uns com os
outros.
POO
Da mesma maneira, a orientação a objetos consiste em
considerar os sistemas computacionais não como uma
coleção estruturada de processos, mas sim como uma
coleção de objetos que interagem entre si. Com a
programação orientada a objetos é possível
desenvolver aplicações mais robustas e estruturados
em módulos que agrupam um estado e operações
sobre este estado, apresentando assim ênfase em
reutilização de código, isto é, permitem ao programador
uma maior reutilização de código e consequente baixa
probabilidade de falha na produção do software. A
compreensão do software tornou-se mais fácil, pois a
representação em objetos é um processo mais natural.
Porque OO?
• Surgiu da necessidade de simular a realidade, criando
abstrações na tentativa de representar as
características relevantes dos objetos envolvidos no
sistema que se deseja desenvolver. Com o uso da OO,
a engenharia de software conseguiu avançar na
habilidade de modelar e projetar softwares que
representam os problemas do mundo real no mundo
computacional. O desenvolvedor aproveita os
aspectos mais importantes do mundo real para realizar
representações no computador. O processo de
modelagem consiste de abstrair (extrair as
informações relevantes) e representar no computador.
Porque OO?
Principais diferenças entre as PE e POO
• Analisemos as principais diferenças entre as lingauagens
procedimentais(Estruturadas) e as linguagens orientadas a
objetos: por exemplo, em linguagem C para representar um
objeto “Mesa” poderia criar uma estrutura e as variáveis
“Tampo”, “Altura”, “Largura”, “Comprimento”. Não deixa de
ser um conjunto de quatro variáveis que identifica a “Mesa”.
Por cada tipo de mesa, em que o número de variáveis fosse
diferente, teríamos de definir uma nova estrutura e criar
tudo de novo. Numa abordagem de POO poderemos criar
uma classe que identifique a “Mesa” e reutilizá-la as vezes
que entender no programa e se a “Mesa” for diferente, basta
herdar as propriedades da anterior e cria uma nova classe.
• Parece confuso na teoria, mas verá que na prática é mais
simples!
Vantagens da POO
• Forte suporte para o encapsulamento dos dados e da
lógica dentro de um componente que chamamos de
objeto.
• Essas propriedades tornam-se mais importantes
quando os programas se tornam grandes, pois com a
orientação a objetos fica mais fácil de dar
manutenção no código.
• Sensível redução no custo de manutenção do
software.
• Aumento na reutilização de código.
Origens da POO
Orientação a objetos tem suas origens na linguagem
SIMULA 67, a qual introduziu os conceitos de classes
e objetos.
Mas foi a linguagem SmallTalk (1980) que a orientação
a objetos ganhou força.
Outras linguagens: C++, Object Pascal, PHP, Java, C# ....
Conceitos de POO
Classes
Abstração
Objetos
Atributos
Métodos
Instâncias
Mensagem
Encapsulamento
Herança
Polimorfismo
Classes
Classe é o molde para a criação de objetos, isto é,
define o comportamento e os atributos dos seus
objetos. Uma classe representa um conjunto de
objetos que possuem características e
comportamentos comuns. Todos os atributos e
métodos que forem descritos na classe farão parte
dos objetos.
Uma classe é o projeto de um objeto.
Classe representa uma categoria e os objetos são
membros dessa categoria.
Classe é a representação de um conjunto de coisas
reais ou abstratas que são reconhecidas como sendo
do mesmo tipo.
Classes
Uma classe é considerada uma fábrica de instâncias que
inclui atributos e operações dessas instâncias. E de agora
em diante, diremos que um objeto é uma instância de
uma determinada classe, ou seja, criaremos nossos
objetos baseados nas características definidas nas
classes.
É importante evitar a criação de classes que tentem
abranger tudo (ou várias coisas).
1- Pode pensar também como a planta de uma casa.
Exemplo:
Planta de uma casa
Exmplos de Classes
Classes
Sintaxe :[acesso] <palavra chave (class)> <Nome da classe>
{
[bloco de Instruções]
}
Em que: acesso representa o nível de proteção da classe, palavra chave
onde deve-se colocar class e o nome da classe que corresponde ao nome
que pretendemos atribuir à classe.
Obs: Assembly módulo de programação compilado que agrega código-
fonte, metainformação, bem como outros recursos (tais como imagens).
Dados
abstraidos
O que são objetos?
Características Comportamentos
Acelerar Características Comportamentos
Cor Cor Acelerar
Combustível Freiar
Acender farol Combustível Freiar
Num_Portas Num_Portas Acender farol
Potencia Dar seta
Buzinar Potencia Dar seta
Capacidade Carga Buzinar
Acionar Freio-Motor
Características
Peso Comportamentos
Cor Ligar
Tamanho tela Desligar
Processador Ligar Wireless
Memória Desligar Wireless
O que são objetos?
Estamos cercados de objetos, como: Cadeira, Mesa, Computador,
Pessoas, etc. Cada objeto tem suas características e
comportamentos.
Um dos objetivos da Orientação a Objetos é representar objetos
do mundo real em sistemas computacionais, facilitando a
análise e construção de software.
Atualmente: Paradigma de programação é técnica de projeto de
software.
Um objeto é uma pessoa, um lugar, é a base para todos os outros
conceitos da orientação a objetos.
Um objeto denota uma entidade de natureza física, conceitual ou
de software:
Entidades físicas: um carro, uma pessoa, um livro;
Entidade conceitual: um DER de uma sistema;
Entidade de software: um radiobutton em uma página web.
Objectos
É a instância da classe em memória.
Possui todas as características definidas previamente
na classe.
Se comunicam através da troca de mensagens.
É uma entidade real ou abstrata, que modela um
conceito presente na realidade humana, ocupando
espaço físico ou lógico.
Facilita a compreensão do mundo real e oferece uma
base real para implementação em computador.
Exemplo:
A casa construída
Atributos
Os atributos são as características que definem os objetos de uma
classe, ou seja, as peculiaridades que costumam variar de objeto
para objeto;. Também são conhecidos como propriedades.
Alguns exemplos de atributos em uma classe chamada Pessoa
seriam: altura, sexo, cor, idade.
Exemplos de atributos de qualquer classe como: o tipo de letra, a
posição no ecrã e a capacidade de redimensionamento.
Alguns atributos permitem diferenciar um objeto do outro dentro
de uma mesma classe.
Sintaxe :[acesso] <tipo de dados> <atributo>;
Em que: acesso representa o nível de proteção do atributo, depois
o tipo de dados (que podem ser: inteiros, reais, caracteres ou
strings, estruturas e inclusive outros objetos ou apontadores de
objetos).
Atributos
Nível de proteção Descrição
Private O atributo só pode ser acedido a partir da classe onde foi declarado.
Public O atributo pode ser acedido a partir de qualquer classe.
Protected O atributo só pode ser acedido a partir da classe onde foi declarado e
a partir de classes derivadas.
Internal O atributo pode ser acedido a partir de qualquer classe.
Protected Internal O atributo só pode ser acedido a partir da classe onde foi declarado e
a partir de classes derivadas.