Sunteți pe pagina 1din 18

Programação Orientada a Objetos

Material Teórico

Material Teórico Introdução a Programação Orientada a Objetos Responsável pelo Conteúdo: Prof. Esp. Alexander

Introdução a Programação Orientada a Objetos

Responsável pelo Conteúdo:

Prof. Esp. Alexander Gobbato P. Albuquerque

Revisão Textual:

Profa. Ms. Rosemary Toffoli

Introdução a Programação Orientada a Objetos
Introdução a Programação
Orientada a Objetos

• Introdução

• Importância do Software

• Por que a Tecnologia de Objetos?

• Conceito da Análise e Projeto Orientado a Objetos

• Conceito da Análise e Projeto Orientado a Objetos • Notação UML para Classe e objetos

• Notação UML para Classe e objetos

Orientado a Objetos • Notação UML para Classe e objetos · Olá alunos(as), sejam bem vindos

· Olá alunos(as), sejam bem vindos a disciplina de Programação Orientada a Objetos, nesta unidade estudaremos os conceitos básicos para a criação e entendimento dos conceitos da orientação. Mostraremos a diferença entre programação estruturada e a programação orientada a objetos. Essa será uma aula bem teórica mas importante para a compreensão das unidades seguintes.

· Vamos estudar?

Hoje veremos alguns assuntos introdutórios na nossa disciplina e aproveito para apresentar-lhes alguns conceitos que utilizaremos na estrutura de todas as nossas unidades. Para obter um bom aproveitamento nesta unidade vamos conferir a estrutura desta unidade:

Conteúdo Teórico: neste link você encontrará o material principal de estudos na forma de texto escrito. Atividade de Sistematização: os exercícios disponibilizados são de autocorreção e visam que você pratique o que aprendeu na disciplina e que identifique os pontos em que precisa prestar mais atenção, ou pedir esclarecimentos a seu tutor. Além disso, as notas atribuídas aos exercícios serão parte de sua média final na disciplina. Atividade de Aprofundamento: é uma atividade dissertativa. Material Complementar e Referências Bibliográficas: nestes links você poderá ampliar seus conhecimentos. Vídeo Aula: nestes links serão apresentadas algumas ferramentas na prática e também a resolução de alguns exercícios de forma prática. Lembramos a você da importância de realizar todas as atividades propostas dentro do prazo estabelecido para cada Unidade, dessa forma, você evitará que o conteúdo se acumule e que você tenha problemas ao final do semestre. Uma última recomendação, caso tenha problemas para acessar algum item da disciplina, ou dúvidas com relação ao conteúdo, não deixe de entrar em contato com seu professor tutor através do botão mensagens.

Unidade: Introdução a Programação Orientada a Objetos

Contextualização

Um paradigma de programação fornece (e determina) a visão que o programador possui sobre a estruturação e execução do programa. Assim como ao resolver um problema podemos adotar uma entre variadas metodologias, ao criar um programa podemos adotar um determinado paradigma de programação para desenvolvê-lo.

Os sistemas projetados atualmente são maiores, mais complexos e sujeitos a constantes alterações e adaptações aos diversos ambientes computacionais. Através do encapsulamento de informações, a reutilização de esforços empregados em projetos anteriores e a modificação do sistema se tornaram mais fáceis.

Introdução A metodologia Orientação a Objetos é baseada em “objetos do mundo real”, e por
Introdução A metodologia Orientação a Objetos é baseada em “objetos do mundo real”, e por

Introdução

A metodologia Orientação a Objetos é baseada em “objetos do mundo real”, e por este

motivo é mais intuitiva ao ser humano, tais como: objetos e atributos, classes e membros, estruturas e componentes, ação e reação. Os métodos de desenvolvimento de software anteriores ao surgimento desse paradigma organizam a especificação de um sistema de acordo com suas funções ou com os dados manipulados. Geralmente, esses métodos apresentam dificuldades na transição da representação do sistema em uma fase para outra do processo de desenvolvimento (da Análise para o Projeto e, do Projeto para a Implementação).

Em um sistema orientado a objetos, os dados e todas as operações, que manipulam esses dados, são agrupados em uma única estrutura: “as classes”. Desde o início do desenvolvimento desses sistemas e, em todas as suas fases, o analista trabalha com o mesmo elemento de abstração, os objetos.

Estudo das técnicas de programação utilizando o paradigma da orientação a objetos, bem como ferramentas em laboratório para o desenvolvimento de aplicações científicas e comerciais.

o desenvolvimento de aplicações científicas e comerciais. Importância do Software Dependência generalizada da vida

Importância do Software

Dependência generalizada da vida moderna em sistemas de computação.

O software é parte cada vez maior dos custos e do sucesso desses sistemas.

Produzir software é uma atividade inerentemente complexa:

independe de leis físicas, restrições de materiais e processos de manufatura

Requer métodos disciplinados de desenvolvimento.

Histórico

A orientação a objetos (OO) foi utilizada primeiramente na década de 70.

A Origem na linguagem SIMULA-67 (década de 60 - Noruega), que já implementava alguns

conceitos da Orientação a Objetos.

SIMULA-68 foi a primeira linguagem a suportar os conceitos da Orientação a Objetos.

Smaltalk, criada pela Xerox, popularizou e incentivou a Orientação a Objetos.

Unidade: Introdução a Programação Orientada a Objetos

Outras linguagens de Orientação a Ojbjetos: C++, Object Pascal (Delphi), C#, Java

Java, de fato, popularizou a Orientação a Objetos.

Programa Estruturada versus Programa Orientado a Objetos

Prog. Estruturada

Dados

Funções

Prog. O.O

Objeto

Atributos

Métodos

(dados)

(funções)

Estruturado:

Ênfase nos procedimentos, implementados em blocos estruturados, com comunicação entre procedimentos por passagem de dados

Orientado a objetos:

Dados e procedimentos fazem parte de um só elemento básico (objeto). Os elementos básicos comunicam-se entre si, caracterizando a execução do programa à Dados e procedimentos agrupados em um só elemento.

à Dados e procedimentos agrupados em um só elemento. Por que a Tecnologia de Objetos? Os

Por que a Tecnologia de Objetos?

Os principais problemas do software hoje são:

Diminuir o custo e o tempo da mudança

Aumentar a capacidade e facilidade de adaptação

Objetos são especialmente bons para:

Objetos são especialmente bons para:  Reduzir o tempo necessário para adaptar um sistema existente (reação

Reduzir o tempo necessário para adaptar um sistema existente (reação mais rápida à mudanças no seu ambiente de negócio)

Reduzir o esforço, a complexidade e os custos associados à mudança

Orientação a objetos – Fase e responsabilidade

Fases

Análise

Projeto

Implementação

responsabilidade Fases Análise Projeto Implementação Define “o quê” Define “o como” Construção do

Define “o quê”

Define “o como”

Construção do Software

 

Entender o domínio do problema

Análise

Definir a estrutura estática da aplicação

Criar vocabulário comum de conceitos

 

Apresentar a melhor solução para problema

Projeto

Definir a estrutura dinâmica da aplicação

Fazer especificação

 

Construir a aplicação em conformidade com a especificação

Implementação

Fazer testes e validações

Fazer implantação

Unidade: Introdução a Programação Orientada a Objetos

Unidade: Introdução a Programação Orientada a Objetos Conceito da Análise e Projeto Orientado a Objetos A

Conceito da Análise e Projeto Orientado a Objetos

A metodologia de Análise e Projeto Orientado a Objetos é um processo que contém suporte

a

notação para definição de software baseado no conceito de objetos que combinam estrutura

e

comportamento na mesma entidade.

Este processo geralmente não é linear, mas é previsível, cíclico, e passível de teste

e

rastreamento.

A notação OOA&D (Object-oriented Analysis and Design ) é definição visual comum

que permite as pessoas compartilharem conhecimento sobre sistema - OOA&D consiste em três partes:

Processo (São as atividades)

Notação (demonstra a interação dos objetos)

Regras (descreve como o sistema deve trabalhar)

Principais Conceitos

As duas principais característica da Orientação a objetos são Classes e Objetos

O que é uma classe?

Diálogo com o Autor classe [Do lat. classe.] S. f. 1. Numa série ou num
Diálogo com o Autor
classe [Do lat. classe.] S. f. 1. Numa série ou num conjunto, grupo ou divisão que apresenta carac-
terísticas semelhantes;
21. Inform. Em programação ou modelagem orientada a objetos (v. orientação a objetos), categoria
descritiva geral, que abrange o conjunto de objetos que compartilham uma ou mais características
quanto a seus itens de dados e procedimentos associados. 22. Lóg. Agrupamento de objetos que têm
uma ou mais características em comum.
“Uma classe é uma entidade descreve um conjunto de objetos com propriedades e comportamen-
tos semelhantes e com relacionamentos comuns com outros objetos”
As classes são as partes mais importantes de qualquer sistema orientado a objetos.
Usamos as classes para capturar o vocabulário do sistema que está em desenvolvimento. Essas
classes podem incluir abstrações que são parte do domínio do problema, assim como as classes que
fazem uma implementação. Podemos usar ainda as classes para representar itens de software, de
hardware e até itens que sejam somente conceituais.
Contexto: Venda de flores Chris precisa enviar flores para o amigo Robin que mora em

Contexto: Venda de flores

Chris precisa enviar flores para o amigo Robin que mora em outra cidade…

Objetivo:

Mandar Flores para o Robin

Objetivo: Criar o arranjo das flores

Arranjador

o Robin Objetivo : Criar o arranjo das flores Arranjador C h r i s Florista
o Robin Objetivo : Criar o arranjo das flores Arranjador C h r i s Florista

Chris

Florista

Objetivo:

Criar

Flores

Arranjador C h r i s Florista Objetivo: Criar Flores Entregador Cultivador Atacadista Objetivo: Satisfazer o
Arranjador C h r i s Florista Objetivo: Criar Flores Entregador Cultivador Atacadista Objetivo: Satisfazer o

Entregador

C h r i s Florista Objetivo: Criar Flores Entregador Cultivador Atacadista Objetivo: Satisfazer o Cliente

Cultivador

Atacadista

Objetivo:

Satisfazer o

Cliente

Cultivador Atacadista Objetivo: Satisfazer o Cliente Objetivo: Fornecer flores “frescas” Robin Objetivo:

Objetivo:

Fornecer flores

“frescas”

Robin

Cliente Objetivo: Fornecer flores “frescas” Robin Objetivo: Entregar as flores para o Robin Figura 1. Venda

Objetivo: Entregar as flores para o Robin

Figura 1. Venda de Flores, Adaptado de Budd,2002

Agentes e Comunidades

Venda de Flores, Adaptado de Budd,2002 Agentes e Comunidades C h r i s Objetivo: Mandar

Chris

Objetivo:

Mandar Flores para o Robin

Florista

1. Chris passa uma mensagem para o florista contendo uma requisição (entregar flores para Robin em outra cidade).

2. É responsabilidade do florista satisfazer esta requisição.

3. Chris não sabe o método que o florista irá utilizar para entregar flores em outra cidade e também desconhece os detalhes desta operação.

POO é estruturada como uma comunidade de agentes que interagem chamados de objetos;

Cada objeto tem um papel a ser executado;

Cada objeto fornece serviços ou executam ações que podem ser utilizadas por outros membros da comunidade.

Unidade: Introdução a Programação Orientada a Objetos

Mensagens e Métodos

Uma ação é a transmissão de uma mensagem para um agente (objeto) responsável pela ação.

Quando um objeto aceita a mensagem ele é responsável por tratar a ação.

Em resposta a esta mensagem o receptor executará algum método para atender a solicitação.

Responsabilidades

Descreve o comportamento em termos de responsabilidades.

O conjunto de responsabilidades de um objeto é descrito através e protocolos

Classes e Instâncias

O Florista é um exemplo de classe, pois representa todos os floristas. O Florista Pitoco, e o Bodjo são instâncias desta classe.

Um outro exemplo de classes e instâncias é forma de gelatina e as gelatinas.

Objetivo: Criar Flores

classe.  Um outro exemplo de classes e instâncias é forma de gelatina e as gelatinas.
Notação UML para Classe e objetos A identificação para as classes em UML é um
Notação UML para Classe e objetos A identificação para as classes em UML é um

Notação UML para Classe e objetos

A identificação para as classes em UML é um retângulo divido em três partes. Caso não queira exibir os detalhes da classe você pode suprimir alguns detalhes como atributo e os métodos, conforme mostram as figuras a seguir

atributo e os métodos, conforme mostram as figuras a seguir Notação UML para classes A seção
atributo e os métodos, conforme mostram as figuras a seguir Notação UML para classes A seção
atributo e os métodos, conforme mostram as figuras a seguir Notação UML para classes A seção

Notação UML para classes

A seção superior é reservada para a identificação da classe. Essa seção é obrigatório o

preenchimento. O nome da classe deve conter somente letras e palavras concatenadas e a primeira letra deve ser escrita em maiúsculo.

Exemplo de nomes:

Aluno

Empregado

Curso

Na segunda seção são exibidos os atributos da classe, esses atributos são variáveis membro da classe que podem ser usadas pelos métodos tanto para acesso ou escrita.

O atributo pode ser criado com as seguintes notações:

+ Acesso público, tanto funções membros da classe e funções externas podem ter acesso ao atributo público.

- Acesso privado, somente funções membros da classe tem acesso a esses atributos

# Acesso protegido, o atributo também é privado mas as funções membros das classes derivadas também tem acesso aos atributos.

Na última seção são exibidos os métodos da classe, ou seja, as funções que a classe possui. Os métodos também seguem a mesma notação que os atributos.

+ Acesso público, tanto funções membros da classe e funções externas podem ter acesso ao atributo público.

- Acesso privado, somente funções membros da classe tem acesso a esses atributos

# Acesso protegido, o atributo também é privado mas as funções membros das classes derivadas também tem acesso aos atributos.

Unidade: Introdução a Programação Orientada a Objetos

Material Complementar

Explore Livros Disponíveis na Biblioteca Virtual Universitária da Pearson Education - Aprenda Programação Orientada
Explore
Livros Disponíveis na Biblioteca Virtual Universitária da Pearson Education
- Aprenda Programação Orientada a Objetos em 21 dias (Anthony Sintes)
- Java Como Programar, 8 edição (Paul Deitel e Harvey Deitel)
- Core Java – Volume 1 (Cay Horstman e Gary Cornell)
- Conceitos de POO em inglês, site da SUN:
http://download-llnw.oracle.com/javase/tutorial/java/concepts/index.html
Referências
Referências

Referências

DEITEL, H. M. Java: Como Programar. 6. ed. Porto Alegre: Bookman, 2007.

GAMMA, E. et al. Padrões de Projeto: Soluções Reutilizaveis de Software Orientado a Objetos. Porto Alegre: Bookman, 2007.

Unidade: Introdução a Programação Orientada a Objetos

Unidade: Introdução a Programação Orientada a Objetos Anotações 16

Anotações

www.cruzeirodosulvirtual.com.br Campus Liberdade Rua Galvão Bueno, 868 CEP 01506-000 São Paulo SP Brasil Tel: (55
www.cruzeirodosulvirtual.com.br
Campus Liberdade
Rua Galvão Bueno, 868
CEP 01506-000
São Paulo SP Brasil
Tel: (55 11) 3385-3000