introdução poo e java eduardo figueiredo 10 de março de 2010 pooaula 02
TRANSCRIPT
![Page 1: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/1.jpg)
Introdução POO e Java
Eduardo Figueiredo
10 de Março de 2010
POO Aula 02
![Page 2: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/2.jpg)
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
![Page 3: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/3.jpg)
Conceitos FundamentaisDesenvolvimento de Software
![Page 4: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/4.jpg)
O que é software?
Programa de computador + Documentação
Classificação fundamental Produtos genéricos (ex. MS Office) Produtos encomendados (ex. Locadora do
Zé)
![Page 5: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/5.jpg)
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...
![Page 6: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/6.jpg)
Software está em todo lugar
![Page 7: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/7.jpg)
Sistemas Críticos
Equipamentos médicos Extremamente críticos Lidam com vidas
Caixas eletrônicos Prejuízos financeiros
![Page 8: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/8.jpg)
Confiabilidade de Software
Exemplo: Vôo Air France Rio - Paris1. 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
![Page 9: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/9.jpg)
Preço e Desempenho
Celular Pouco espaço na memória Grande variação em
características de aparelhos
![Page 10: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/10.jpg)
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
![Page 11: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/11.jpg)
Reutilização de Software
![Page 12: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/12.jpg)
Meu Primeiro UML
Pessoa
nomeemail
Aluno
matricula
Professor
![Page 13: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/13.jpg)
Sistema Acadêmico
Pessoa
nomeemail
Aluno
matricula
Professor
SistemaAcademico
![Page 14: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/14.jpg)
Locadora de DVD
Pessoa
nomeemail
Cliente
registro
Funcionario
MinhaLocadora
DVD
titulo
![Page 15: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/15.jpg)
Locadora de DVD
Pessoa
nomeemail
Cliente
registro
Funcionario
MinhaLocadora
DVD
titulo
<locados>
![Page 16: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/16.jpg)
Campeonato de Futebol
Pessoa
nomeemail
Jogador
posicao
Presidente
CampeonatoBrasileiro
Time
nome
Tecnico
...
![Page 17: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/17.jpg)
Um Pouco de História
![Page 18: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/18.jpg)
Classificação das Linguagens
Linguagens de Máquina +1300042774
(traduzido depois para 0 e 1) Linguagens Assembly
load basepay / add overpay / store grosspay Linguagens de Alto Nível
grosspay = basepay + overpay
![Page 19: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/19.jpg)
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
![Page 20: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/20.jpg)
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.
![Page 21: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/21.jpg)
Tecnologia Java
![Page 22: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/22.jpg)
Plataforma Java
Principais Edições
J2EEJ2SE J2ME
![Page 23: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/23.jpg)
J2SE (Java Padrão)
![Page 24: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/24.jpg)
J2EE (Aplicações Web Complexas)
![Page 25: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/25.jpg)
J2ME (Dispositivos Móveis)
connecteddeviceconfiguration
connectedlimiteddeviceconfiguration
![Page 26: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/26.jpg)
De Procedimental para OO
![Page 27: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/27.jpg)
Programação Procedimental
#define MAXCLIENTES 10Definição de Constantes
![Page 28: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/28.jpg)
#define MAXCLIENTES 10
Definição de Tipos
typedef struct {
char *nome;
char *endereco;
} Cliente;
#define MAXCLIENTES 10
Programação Procedimental
![Page 29: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/29.jpg)
#define MAXCLIENTES 10
Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES];// Cliente **meusClientes; Definição de Variáveis Globais
typedef struct {
char *nome;
char *endereco;
} Cliente;
#define MAXCLIENTES 10
typedef struct {
char *nome;
char *endereco;
} Cliente;
Programação Procedimental
![Page 30: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/30.jpg)
#define MAXCLIENTES 10
Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES];// Cliente **meusClientes;
Cliente* criarCliente() { ...}void criarClientes () { ... for (...) { ... criarCliente(); }}
Definição de funções
typedef struct {
char *nome;
char *endereco;
} Cliente;
#define MAXCLIENTES 10
typedef struct {
char *nome;
char *endereco;
} Cliente;
Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES];// Cliente **meusClientes;
Programação Procedimental
![Page 31: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/31.jpg)
#define MAXCLIENTES 10
Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES];// Cliente **meusClientes;
Cliente* criarCliente() { ...}void criarClientes () { ... for (...) { ... criarCliente(); }}
Definição da função mainint main () { ... criarClientes();}
typedef struct {
char *nome;
char *endereco;
} Cliente;
#define MAXCLIENTES 10
typedef struct {
char *nome;
char *endereco;
} Cliente;
Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES];// Cliente **meusClientes;
Cliente* criarCliente() { ...}void criarClientes () { ... for (...) { ... criarCliente(); }}
Programação Procedimental
![Page 32: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/32.jpg)
Programação ProcedimentalEstrutura do Programa
#define MAXCLIENTES 10
Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES];// Cliente **meusClientes;
Cliente* criarCliente() { ...}void criarClientes () { ... for (...) { ... criarCliente(); }}
Definição de Constantes
Definição de Tipos
Definição de Variáveis Globais
Definição de funções
Definição da função mainint main () { ... criarClientes();}
typedef struct {
char *nome;
char *endereco;
} Cliente;
![Page 33: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/33.jpg)
Migrando para Java
Procedimental Orientado a ObjetosDefinição de Classes
![Page 34: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/34.jpg)
Programação OO
public class Clientes { static final MAX = 10; Cliente vetorClientes[] = new Cliente[MAX]; public Clientes () { ... for (...) { ... new Cliente(); }}
Definição de Classe
public class Teste { public static void main (String args) { Clientes meusClientes = new Clientes(); }}
public class Cliente {
String nome;
String endereco;
public Cliente (String n, String e) {
nome = n ;
endereco = e;
}
}
Definição de Classe
Definição de Classe
![Page 35: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/35.jpg)
Instalando Java
Instalar o JDK (Java 2 SE) http://java.sun.com/
Instalar/Usar um editor de textos TextPad (http://www.textpad.com/)
Configurar variáveis de ambiente Path e Classpath
![Page 36: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/36.jpg)
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.
![Page 37: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/37.jpg)
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.
![Page 38: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/38.jpg)
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)
![Page 39: Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010 POOAula 02](https://reader036.vdocuments.net/reader036/viewer/2022070311/552fc132497959413d8d6a3c/html5/thumbnails/39.jpg)
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/