Algoritmos e Programação II -...

Preview:

Citation preview

Algoritmos e Programação II

Agenda

� Desenvolver Software

� Objetos

� Classes

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

� Pacotes

� Criando nossa primeira classe

Desenvolver SOFTWARE

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.

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).

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.

Paradigma OO x Estruturado

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.

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.

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.

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.

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.

ObjetosObjetos

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:

Objetos

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

CorCor

Marca

Velocidade

Objetos

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

Acelerar

Freiar

Parar

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.

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

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

ClassesClasses

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.

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

Recommended