Cliente

Propaganda
POO
Aula 02
Introdução POO e Java
Eduardo Figueiredo
10 de Março de 2010
Tópicos da Aula

Conceitos fundamentais de software

Programação orientada a objetos e
reutilização de software

Um pouco da história de Java

Tecnologia Java
Conceitos Fundamentais
Desenvolvimento de Software
O que é software?

Programa de computador +
Documentação

Classificação fundamental


Produtos genéricos (ex. MS Office)
Produtos encomendados (ex. Locadora do
Zé)
Crise do Software (1968)


Custos de hardware caindo
Custos do software subindo
Avanços em hardware


Permitem desenvolvimento de sistemas
cada vez mais complexos
Resultado (software)

Custos altos, projetos atrasados,
sistemas não confiáveis,
desempenho insatisfatório, etc...
Software está em todo lugar
Sistemas Críticos

Equipamentos médicos



Extremamente críticos
Lidam com vidas
Caixas eletrônicos

Prejuízos financeiros
Confiabilidade de Software

Exemplo: Vôo Air France Rio - Paris
1. Dados conflitantes (falha nos sensores)
2. Sistema assume o controle (piloto automático)
3. Piloto tenta reiniciar o sistema (boot)
4. Em 4 minutos o avião mergulha no oceano

The Last Four Minutes of Air France Flight 447.
http://www.spiegel.de/international/world/0,1518,679980,00.html
Preço e Desempenho

Celular

Pouco espaço na memória
Grande variação em
características de aparelhos
Programação Orientada a Objetos

Reutilização de Software

Vantagens



Software mais confiável (já foi usado antes)
Sistemas mais baratos (parte já estava
pronto)
Projetos mais elegantes e eficientes
Reutilização de Software
Meu Primeiro UML
Pessoa
nome
email
Professor
Aluno
matricula
Sistema Acadêmico
SistemaAcademico
Pessoa
nome
email
Professor
Aluno
matricula
Locadora de DVD
MinhaLocadora
Pessoa
DVD
nome
email
Funcionario
titulo
Cliente
registro
Locadora de DVD
MinhaLocadora
Pessoa
DVD
nome
email
Funcionario
titulo
Cliente
registro
<locados>
Campeonato de Futebol
CampeonatoBrasileiro
Pessoa
Time
nome
email
Presidente
Tecnico
nome
Jogador
posicao
...
Um Pouco de História
Classificação das Linguagens

Linguagens de Máquina


Linguagens Assembly


+1300042774
(traduzido depois para 0 e 1)
load basepay / add overpay / store grosspay
Linguagens de Alto Nível

grosspay = basepay + overpay
De onde veio Java?

BCLP (1967) por Martin Richards

Linguagem C (1972) por Dennis Ritchie

C++ (1980) por Bjarne Stroustrup, Bell

Java (1995) pela Sun
Bibliotecas de Java (API)

Organização da Biblioteca


Pacotes -> Classes -> Métodos (função)
Por que usar classes da biblioteca?




Ganhar de tempo
Mais confiáveis
São portáveis
São eficientes, etc.
Tecnologia Java
Plataforma Java
Principais Edições
J2SE
J2EE
J2ME
J2SE (Java Padrão)
J2EE (Aplicações Web Complexas)
J2ME (Dispositivos Móveis)
connected
device
configuration
connected
limited
device
configuration
De Procedimental para OO
Programação Procedimental
#define MAXCLIENTES 10
Definição de Constantes
Programação Procedimental
#define MAXCLIENTES 10
typedef struct {
char *nome;
char *endereco;
} Cliente;
Definição de Tipos
Programação Procedimental
#define MAXCLIENTES 10
typedef struct {
char *nome;
char *endereco;
} Cliente;
Cliente *meusClientes[MAXCLIENTES];
// Cliente meusClientes[MAXCLIENTES];
// Cliente **meusClientes;
Definição de Variáveis Globais
Programação Procedimental
#define MAXCLIENTES 10
typedef struct {
char *nome;
char *endereco;
} Cliente;
Cliente *meusClientes[MAXCLIENTES];
// Cliente meusClientes[MAXCLIENTES];
// Cliente **meusClientes;
Cliente* criarCliente() {
...
}
void criarClientes () {
...
for (...) {
... criarCliente();
}
}
Definição de funções
Programação Procedimental
#define MAXCLIENTES 10
typedef struct {
char *nome;
char *endereco;
} Cliente;
Cliente *meusClientes[MAXCLIENTES];
// Cliente meusClientes[MAXCLIENTES];
// Cliente **meusClientes;
Cliente* criarCliente() {
...
}
void criarClientes () {
...
for (...) {
... criarCliente();
}
}
int main () {
...
criarClientes();
}
Definição da função main
Programação Procedimental
Estrutura do Programa
#define MAXCLIENTES 10
typedef struct {
char *nome;
char *endereco;
} Cliente;
Definição de Constantes
Cliente *meusClientes[MAXCLIENTES];
// Cliente meusClientes[MAXCLIENTES];
// Cliente **meusClientes;
Cliente* criarCliente() {
...
}
void criarClientes () {
...
for (...) {
... criarCliente();
}
}
int main () {
...
criarClientes();
}
Definição de Tipos
Definição de Variáveis Globais
Definição de funções
Definição da função main
Migrando para Java
Procedimental
Orientado a Objetos
Definição de Classes
Programação OO
public class Cliente {
String nome;
String endereco;
public Cliente (String n, String e) {
nome = n ;
endereco = e;
}
}
public class Clientes {
static final MAX = 10;
Cliente vetorClientes[] = new Cliente[MAX];
public Clientes () {
...
for (...) {
... new Cliente();
}
}
Definição de Classe
Definição de Classe
Definição de Classe
public class Teste {
public static void main (String args) {
Clientes meusClientes = new Clientes();
}
}
Instalando Java

Instalar o JDK (Java 2 SE)


Instalar/Usar um editor de textos


http://java.sun.com/
TextPad (http://www.textpad.com/)
Configurar variáveis de ambiente

Path e Classpath
Editor de Texto x IDE

Usar apenas editor de texto



Exemplo: TextPad
(http://www.textpad.com/)
Compilar e executar
Não usar ambientes de
desenvolvimento

Eclipse, JBuilder, NetBeans, etc.
Editor de Texto x IDE

Usar apenas editor de texto



Exemplo: TextPad
(http://www.textpad.com/)
Compilar e executar
Não usar ambientes de
desenvolvimento

Eclipse, JBuilder, NetBeans, etc.
Próxima Aula

Java: Como Programar, 6a. Edição






Seção 1.16: Estudo de Caso de ES (p. 14)
Seção 3.1: Introdução (p. 58)
Seção 3.2: Classes, métodos, ... (p. 58)
Seção 3.3: Declarando uma Classe (p. 59)
Seção 3.4: Declarando um Método (p. 62)
Seção 3.5: Variáveis de Instancia,... (p. 64)
Referência



DEITEL, H. M.; DEITEL P. J. Java:
Como Programar, 6a. Edição.
Pearson, 2005. (Livro Texto).
BOOCH, G., RUMBAUGH, J.,
JACOBSON, I. UML, Guia do Usuário.
Rio de Janeiro: Campus, 2000.
Documentação Java.
http://java.sun.com/
Download