1 / 39

Introdução POO e Java

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.

isha
Download Presentation

Introdução POO e Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. POO Aula 02 Introdução POO e Java Eduardo Figueiredo 10 de Março de 2010

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

  3. Conceitos FundamentaisDesenvolvimento de Software

  4. O que é software? • Programa de computador + Documentação • Classificação fundamental • Produtos genéricos (ex. MS Office) • Produtos encomendados (ex. Locadora do Zé)

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

  6. Software está em todo lugar

  7. Sistemas Críticos • Equipamentos médicos • Extremamente críticos • Lidam com vidas • Caixas eletrônicos • Prejuízos financeiros

  8. Confiabilidade de Software • Exemplo: Vôo Air France Rio - Paris • Dados conflitantes (falha nos sensores) • Sistema assume o controle (piloto automático) • Piloto tenta reiniciar o sistema (boot) • 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 

  9. Preço e Desempenho • Pouco espaço na memória • Grande variação em características de aparelhos Celular

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

  11. Reutilização de Software

  12. Meu Primeiro UML Pessoa nome email Professor Aluno matricula

  13. Sistema Acadêmico SistemaAcademico Pessoa nome email Professor Aluno matricula

  14. Locadora de DVD MinhaLocadora Pessoa DVD nome email titulo Funcionario Cliente registro

  15. Locadora de DVD MinhaLocadora Pessoa DVD nome email titulo <locados> Funcionario Cliente registro

  16. Campeonato de Futebol CampeonatoBrasileiro Pessoa Time nome email nome Presidente Tecnico Jogador ... posicao

  17. Um Pouco de História

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

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

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

  21. Tecnologia Java

  22. Plataforma Java Principais Edições J2SE J2ME J2EE

  23. J2SE (Java Padrão)

  24. J2EE (Aplicações Web Complexas)

  25. J2ME (Dispositivos Móveis) connecteddeviceconfiguration connectedlimiteddeviceconfiguration

  26. De Procedimental para OO

  27. Programação Procedimental Definição de Constantes #define MAXCLIENTES 10

  28. Programação Procedimental #define MAXCLIENTES 10 typedef struct { char *nome; char *endereco; } Cliente; Definição de Tipos #define MAXCLIENTES 10

  29. Programação Procedimental #define MAXCLIENTES 10 typedef struct { char *nome; char *endereco; } Cliente; typedef struct { char *nome; char *endereco; } Cliente; #define MAXCLIENTES 10 Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES]; // Cliente **meusClientes; Definição de Variáveis Globais

  30. Programação Procedimental #define MAXCLIENTES 10 typedef struct { char *nome; char *endereco; } Cliente; typedef struct { char *nome; char *endereco; } Cliente; #define MAXCLIENTES 10 Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES]; // Cliente **meusClientes; Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES]; // Cliente **meusClientes; Cliente* criarCliente() { ... } void criarClientes () { ... for (...) { ... criarCliente(); } } Definição de funções

  31. Programação Procedimental #define MAXCLIENTES 10 typedef struct { char *nome; char *endereco; } Cliente; typedef struct { char *nome; char *endereco; } Cliente; #define MAXCLIENTES 10 Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES]; // Cliente **meusClientes; Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES]; // Cliente **meusClientes; Cliente* criarCliente() { ... } void criarClientes () { ... for (...) { ... criarCliente(); } } Cliente* criarCliente() { ... } void criarClientes () { ... for (...) { ... criarCliente(); } } Definição da função main int main () { ... criarClientes(); }

  32. Programação ProcedimentalEstrutura do Programa Definição de Constantes typedef struct { char *nome; char *endereco; } Cliente; Definição de Tipos #define MAXCLIENTES 10 Cliente *meusClientes[MAXCLIENTES]; // Cliente meusClientes[MAXCLIENTES]; // Cliente **meusClientes; Definição de Variáveis Globais Cliente* criarCliente() { ... } void criarClientes () { ... for (...) { ... criarCliente(); } } Definição de funções Definição da função main int main () { ... criarClientes(); }

  33. Migrando para Java Orientado a Objetos Definição de Classes Procedimental

  34. Programação OO public class Cliente { String nome; String endereco; public Cliente (String n, String e) { nome = n ; endereco = e; } } Definição de Classe 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 public class Teste { public static void main (String args) { Clientes meusClientes = new Clientes(); } }

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

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

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

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

  39. 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/

More Related