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; 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 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 COR MARCA VELOCIDADE ACELERAR FREIAR PARAR Nome da CLASSE Atributos Métodos
Grupo de Objetos CARRO 1 COR: azul MARCA: gol VELOCIDADE: 60 ACELERAR FREIAR PARAR CARRO 2 COR: branca MARCA: vectra VELOCIDADE: 70 ACELERAR FREIAR PARAR CARRO 3 COR: verde MARCA: fiesta VELOCIDADE: 50 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