Conceitos básicos

Propaganda
Algoritmos e Programação II
Agenda
Desenvolver Software
Objetos
Classes
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;
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
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):
◦ 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
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;
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
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.
Objetos
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:
Objetos
Atributos: são as características deste
objeto, por exemplo, CARRO.
Cor
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.
Grupo de Objetos
Com os mesmos atributos e mesmo
comportamento pertencem a mesma
classe.
Exemplo:
CARRO
Nome da CLASSE
COR
MARCA
VELOCIDADE
Atributos
ACELERAR
FREIAR
PARAR
Métodos
Grupo de Objetos
CARRO 1
CARRO 2
CARRO 3
COR:
COR:“azul”
azul
MARCA:
MARCA:“gol”
gol
VELOCIDADE: 60
COR: “branca”
MARCA: “vectra”
VELOCIDADE: 70
COR: “verde”
MARCA: “fiesta”
VELOCIDADE: 50
ACELERAR
FREIAR
PARAR
ACELERAR
FREIAR
PARAR
ACELERAR
FREIAR
PARAR
3 Objetos da Classe CARRO
Classes
Classe
É um modelo que define os atributos e
métodos comuns a um conjunto de
objetos.
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
para classes que estão logicamente
relacionadas.
API – (Application Programming Interface)
Link:
http://download.oracle.com/javase/1.4.2/docs/api
Download