22
Algoritmos e Programação II

Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Embed Size (px)

Citation preview

Page 1: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Algoritmos e Programação II

Page 2: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Agenda

� Desenvolver Software

� Objetos

� Classes

� Estudo de algumas Classes da API � Estudo de algumas Classes da API

� Pacotes

� Criando nossa primeira classe

Page 3: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Desenvolver SOFTWARE

Page 4: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

GAP Semântico

� Distância entre o problema no mundo real e o modelo abstrato construído;

� Quanto menor, mais rápida será a construção da solução;construção da solução;

� Portanto, diminuir o gap semântico tornou-se um dos objetivos da Engenharia de Software;

� O paradigma orientado a objetos busca meios de diminuir este gap.

Page 5: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Paradigmas de desenvolvimento

O que é um paradigma?

� Um exemplo, um modelo, um padrão;

� Um conjunto de idéias, uma base filosófica.

� Um paradigma de desenvolvimento agrupa � Um paradigma de desenvolvimento agrupa métodos e técnicas que seguem um mesmo conjunto de princípios;

Os dois mais conhecidos são:

◦ Desenvolvimento Estruturado;

◦ Orientação a Objetos (OO).

Page 6: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Paradigmas de desenvolvimento

Estruturado:

◦ Modelo entrada – processamento – saída;

◦ Dados separados das funções.

Orientado a Objetos (OO):Orientado a Objetos (OO):

◦ O mundo é composto por objetos;

◦ Objetos combinam dados e funções;

◦ Conceitos do problema são modelados como objetos que são associados e interagem entre si.

Page 7: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Paradigma OO x Estruturado

Page 8: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Desvantagens do Paradigma Estruturado

� O gap semântico é maior;

� Frequentemente gera sistemas difíceis de serem mantidos:◦ As funções tem que conhecer a estrutura dos ◦ As funções tem que conhecer a estrutura dos dados;

◦ Mudanças na estrutura dos dados acarreta alteração em todas as funções relacionadas.

Page 9: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Benefícios esperados pela OO

� Capacidade de enfrentar novos domínios;� Melhoria da interação analistas x especialistas;� Aumento da consistência interna da análise;� Uso de uma representação básica consistente para análise e projeto;para análise e projeto;

� Alterabilidade, legibilidade e extensibilidade;� Possibilidade de ciclos de vida variados;� Apoio à reutilização.

Page 10: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Filosofia

� O mundo é composto por objetos;

� OO tenta gerenciar a complexidade dos problemas do mundo real abstraindo o conhecimento relevante e encapsulando-o em objetos.

Page 11: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Programação Orientada a Objetos

� POO é o paradigma de programação dominante nos dias de hoje, apesar de ter mais de 30 anos!!! (Simula ’67 e SmallTalk’72);

Demorou muito tempo pra ser adotada, mas � Demorou muito tempo pra ser adotada, mas hoje em dia é o paradigma principal;

� Anos 70 e 80: Programação estruturada. – Enfatiza o uso de procedimentos que modificam o estado do programa.

Page 12: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Programação Orientada a Objetos

� POO é um paradigma de programação de computadores onde se usam classes e objetos, para representar e processar os dados em um programa de computador;

� Geralmente em um programa orientado a objetos (por exemplo em Java) temos várias definições de classes e um aplicativo (a classe que contém o main em Java), que cria os objetos partindo das classes e usa as operações desses objetos.

Page 13: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

ObjetosObjetos

Page 14: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Objetos

� Pode ser descrito por um conjunto de atributos e seu comportamento (operações). Podem ser coisas abstratas (ex.: uma reserva de passagem aérea) ou concretas (ex.: um documento). Ex:Ex:

Page 15: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Objetos

� Atributos: são as características deste objeto, por exemplo, CARRO.

CorCor

Marca

Velocidade

Page 16: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Objetos

� Comportamento: são os métodos que o objeto pode executar, por exemplo, CARRO.

Acelerar

Freiar

Parar

Page 17: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Objetos

� Estado – definido pelo valor de seus atributos;

� Comportamento – são os métodos;

� Identidade – são as referências.� Identidade – são as referências.

Page 18: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Grupo de Objetos

� Com os mesmos atributos e mesmo comportamento pertencem a mesma classe.

Exemplo:Exemplo:

CARRO

COR

MARCA

VELOCIDADE

ACELERAR

FREIAR

PARAR

Nome da CLASSE

Atributos

Métodos

Page 19: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Grupo de Objetos

CARRO 1

COR: azul

MARCA: gol

VELOCIDADE: 60

ACELERAR

CARRO 1

COR: azul

MARCA: gol

VELOCIDADE: 60

ACELERAR

CARRO 1

COR: “azul”

MARCA: “gol”

VELOCIDADE: 60

ACELERAR

CARRO 2

COR: “branca”

MARCA: “vectra”

VELOCIDADE: 70

ACELERAR

CARRO 3

COR: “verde”

MARCA: “fiesta”

VELOCIDADE: 50

ACELERAR

FREIAR

PARAR

ACELERAR

FREIAR

PARAR

ACELERAR

FREIAR

PARAR

ACELERAR

FREIAR

PARAR

3 Objetos da Classe CARRO

Page 20: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

ClassesClasses

Page 21: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Classe

� É um modelo que define os atributos e métodos comuns a um conjunto de objetos.

� Um objeto é uma instância de uma � Um objeto é uma instância de uma CLASSE.

Exemplo: O objeto CARRO 1 é uma instância da classe carro.

Page 22: Algoritmos e Programação II - olaria.ucpel.tche.brolaria.ucpel.tche.br/venecian/lib/exe/fetch.php?media=ap2_intro.pdf · Filosofia O mundo é composto por objetos; OO tenta gerenciar

Classes na Linguagem Java

� Possui inúmeras classes distribuídas em vários pacotes.

� PACOTES – é uma espécie de recipiente � PACOTES – é uma espécie de recipiente para classes que estão logicamente relacionadas.

API – (Application Programming Interface)Link: http://download.oracle.com/javase/1.4.2/docs/api