Você está na página 1de 40

Orientação à Objetos

Livro: UML 2 – Uma abordagem prática


Autor: Gilleanes T. A. Guedes
Capítulo 2
Orientação à Objetos X Programação Estruturada
 Programação Estruturada
 Decompor o sistema em partes menores (funções), criando um
emaranhado de inúmeras funções que chamam umas às
outras.

 Não há separação de conceitos e responsabilidades, causando


dependências enormes no sistema.

 Não existe muito reaproveitamento de código, ao contrário,


muitas vezes se tem muito código duplicado.
Orientação à Objetos X Programação Estruturada
 Programação Estruturada
 Programação Espaguete

 Que pode gerar uma bela indigestão.


Orientação à Objetos X Programação Estruturada
 Programação Orientada à Objetos
 A OO é um mecanismo moderno que ajuda a definir a
estrutura de programas baseada nos conceitos do mundo real.

 A OO permite criar programas componentizados, separando as


partes do sistema por responsabilidades e fazendo com que
essas partes se comuniquem entre si, por meio de mensagens.

 Essas partes do sistemas são chamadas de OBJETOS.


Conceitos Básicos
 Para melhor entender a Orientação à Objetos
discutiremos três pontos:
 Abstração
 Encapsulamento
 Compartilhamento
Abstração
 Abstração consiste de focalizar nos aspectos essenciais
inerentes a uma entidade e ignorar propriedades
``acidentais.'' Em termos de desenvolvimento de
sistemas, isto significa concentrar-se no que um objeto é
e faz antes de se decidir como ele será implementado.

 O uso de abstração preserva a liberdade para tomar


decisões de desenvolvimento ou de implementação
apenas quando há um melhor entendimento do
problema a ser resolvido.
Encapsulamento
 Encapsulação, também referido como esconder
informação, consiste em separar os aspectos externos de
um objeto, os quais são acessíveis a outros objetos, dos
detalhes internos de implementação do objeto, os quais
permanecem escondidos dos outros objetos.

 O uso de encapsulamento evita que um programa torne-


se tão interdependente que uma pequena mudança
tenha grandes efeitos colaterais.
Compartilhamento
 Técnicas de orientação a objetos promovem
compartilhamento em diversos níveis distintos. Herança
de estrutura de dados e comportamento permite que
estruturas comuns sejam compartilhadas entre diversas
classes derivadas similares sem redundância. O
compartilhamento de código usando herança é uma das
grandes vantagens da orientação a objetos.
 Ainda mais importante que a economia de código é a
clareza conceitual de reconhecer que operações
diferentes são na verdade a mesma coisa, o que reduz o
número de casos distintos que devem ser entendidos e
analisados.
Objetos

O que são objetos?


Objetos
 Objetos são a chave para se compreender a tecnologia
orientada a objetos. Você olha ao seu redor e tudo o que
vê são objetos: carro, mesa, janela, livro, pessoa, etc.

 Esses objetos podem ser tanto objetos concretos (carro,


livro, nota fiscal), quanto conceitos abstratos (conta
corrente, venda, pessoa jurídica).
Objetos
 Os objetos do mundo real têm duas características em
comum: ESTADO e COMPORTAMENTO.

 Estado
 O estado de um objeto revela seus dados importantes. Por
exemplo, uma pessoa tem: idade, peso, altura, cor de cabelo,
cor da pele.
 Comportamento
 O comportamento são as ações que aquele objeto pode
exercer ou executar. Por exemplo, uma pessoa pode: andar,
falar, ouvir, pular.
Objetos
 Um objeto de software mantém seu estado em uma ou
mais de suas variáveis. Ele implementa seu
comportamento através de seus métodos. Método é o
mesmo que função ou procedimento.
Objetos
 Um sistema pode conter um ou inúmeros objetos ativos.
Cada objeto ativo no sistema em particular também é
chamado de instância. As diferentes instâncias possuem
seu próprio estado.
Objetos
 Um objeto por si só não significa muito em um sistema.
Para ter algum sentido e valor esses objetos precisam
interagir e comunicar-se entre si.
Classes

O que são classes?


Classes
 Ao comparar diferentes objetos, notamos que eles
possuem atributos eles possuem atributos e
comportamentos semelhantes, dependendo da finalidade
para qual são observados. Usando abstração, podemos
agrupar alguns objetos, observando suas características e
comportamentos comuns.

 É obtida pela classificação de objetos com mesma


estrutura de dados e o mesmo comportamento.
Classes
 Uma classe é um modelo (protótipo) que define as
variáveis (estado) e os métodos (comportamento)
comuns a todos os objetos do mesmo tipo.
Classes
 O agrupamento de objetos em classes é um poderoso
mecanismo de abstração. Desta forma, é possível
generalizar definições comuns para uma classe de
objetos, ao invés de repeti-las para cada objeto em
particular.

 Esta é uma das formas de reutilização e economia que a


abordagem de orientação a objetos suporta.
Classes
 Na UML, uma classe é representada por um retângulo
que pode ter até três divisões. A primeira divisão
armazena o nome pelo qual a classe é identificada, a
segunda enuncia os possíveis atributos pertencentes à
classe e a terceira lista os possíveis métodos que a classe
contém.
Atributos ou Propriedades

O que são atributos ou


propriedades?
Atributos ou Propriedades
 Classes costumam definir atributos, também conhecidos
como propriedades. Os atributos representam as
características de uma classe, ou seja, as peculiaridades
que costumam variar de um objeto para o outro.

 Exemplo:
 Classe: Pessoa
 Atributo1: Altura
 Atributo2: Peso
Atributos ou Propriedades
 Os atributos são apresentados na segunda divisão da
classe e contêm, normalmente, duas informações: o
nome que identifica o atributo e o tipo de dado que o
atributo armazena, como por exemplo, integer, float,
character.
Métodos, Operações ou Comportamentos

O que são métodos?


Métodos, Operações ou Comportamentos
 Classes costumam ter métodos conhecidos como
operações ou comportamento. Um método representa
uma atividade que um objeto de uma classe pode
executar. Os métodos são armazenados na terceira
divisão de uma classe.
Visibilidade
 A visibilidade é utilizada para indicar o nível de
acessibilidade de um determinado atributo ou método,
sendo representada à esquerda destes. Existem
basicamente quatro modos de visibilidade:

 Privada;
 Protegida;
 Pública;
 Pacote.
Visibilidade
 - Privada:
 A visibilidade privada é representada por um símbolo de
menos (-) e significa que somente os objetos da classe
detentora do atributo ou método poderão enxergá-lo ou
utilizá-lo.

 # Protegida:
 A visibilidade protegida é representada pelo símbolo de
sustenido (#) e determina que além dos objetos da classe
detentora do atributo ou método também os objetos de suas
subclasses poderão ter acesso ao mesmo.
Visibilidade
 + Pública:
 A visibilidade pública é representada pelo símbolo de mais (+)
e determina que o atributo ou método pode ser utilizado por
qualquer objeto.

 ~ Pacote:
 A visibilidade pacote é representada pelo símbolo de til (~) e
determina que o atributo ou método é visível por qualquer
objeto dentro do pacote. Somente elementos que fazem parte
de um pacote podem ter essa visibilidade.
Herança

O que herança?
Herança
 O conceito de herança trabalha com os conceitos de
superclasse e subclasses. Uma superclasse, também
chamada de classe-mãe, é uma classe que contém classes
derivadas a partir dela, chamadas subclasses, também
conhecidas como classes-filha. As subclasses, ao serem
derivadas a partir de uma superclasse, herdam as
características, ou seja, seus atributos e métodos.
Herança
 A herança é uma das características mais poderosas e
importantes da orientação à objetos, devido ao fato da
herança permitir o reaproveitamento de atributos e
métodos, otimizando o tempo de desenvolvimento, além
de permitir a diminuição de linhas de código, bem como
facilitar futuras manutenções.
Herança
Polimorfismo

O que é polimorfismo?
Polimorfismo
 O conceito de polimorfismo está associado à herança. O
polimorfismo trabalha com redeclarações de métodos
previamente herdados por uma classe. Esses métodos,
embora semelhantes, diferem de alguma forma da
implementação utilizada na superclasse, sendo
necessário, portanto, reimplementá-los na subclasse.
 Porém, para evitar ter de modificar o código-fonte,
inserindo uma chamada a um método com um nome
diferente, redeclara-se o método com o mesmo nome na
superclasse.
Polimorfismo
Tipos de Dados
Exercícios – Orientação à Objetos

Vamos Praticar?
Exercício 1 – Coleção de CDs
 Adriano tem uma coleção grande de CD's e gostaria de
cadastrar no seu Palm a lista desses CD's, pois às vezes
nem sabe o que tem.
 Ele pensou em cadastrar o nome do cantor(a) ou
conjunto, o título do CD e o ano de lançamento.
 Sendo que um CD pode ter mais de um cantor.
Exercício 2 – Comanda Eletrônica
 As informações a seguir se referem a uma aplicação de
controle de comanda eletrônica da padaria Doce Sabor
do Seu Joaquim.
 O cliente usa uma comanda eletrônica durante suas
compras na Padaria.
 A cada produto consumido, o atendente registra em sua
comanda (que possui uma numeração) o produto e a
quantidade.
 Ao passar no caixa na saída da Padaria, a Caixa lê os
gastos da comanda, finalizando a compra. Na leitura da
comanda, verifica-se o valor unitário de cada produto a
fim de calcular o valor total da compra.
Exercício 3 – Biblioteca Universitária
 Para atender as necessidades de informação de uma
biblioteca universitária foi proposto um sistema que deve
atender algumas características. Identifique as possíveis
classes e objetos com seus respectivos atributos e
métodos.
Exercício 3 – Biblioteca Universitária (Cont...)
 O cadastro dos usuários da biblioteca com endereço completo.
Os usuários podem ser classificados em três grupos:
professores, alunos e funcionários. Para os alunos é necessário
conhecer o curso a qual pertencem. Dos professores e
funcionários é necessário conhecer o departamento. Apenas
funcionários poderão cadastrar usuários.
 O cadastro das obras da biblioteca, que podem ser
classificados em: Livros científicos, periódicos científicos,
periódicos informativos, periódicos diversos, entretenimento,
etc.;
 A língua que se encontra o exemplar da obra;
 A mídia que se encontra o exemplar da obra;
 Os autores da obra com controle de nacionalidade do autor;
 As editoras dos exemplares com ano de edição de cada
exemplar.

Você também pode gostar