Introdu o poo e java
This presentation is the property of its rightful owner.
Sponsored Links
1 / 39

Introdução POO e Java PowerPoint PPT Presentation


  • 50 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


POOAula 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 FundamentaisDesenvolvimento 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

    • 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


Preço e Desempenho

  • Pouco espaço na memória

  • Grande variação em características de aparelhos

Celular


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

titulo

Funcionario

Cliente

registro


Locadora de DVD

MinhaLocadora

Pessoa

DVD

nome

email

titulo

<locados>

Funcionario

Cliente

registro


Campeonato de Futebol

CampeonatoBrasileiro

Pessoa

Time

nome

email

nome

Presidente

Tecnico

Jogador

...

posicao


Um Pouco de História


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


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

J2ME

J2EE


J2SE (Java Padrão)


J2EE (Aplicações Web Complexas)


J2ME (Dispositivos Móveis)

connecteddeviceconfiguration

connectedlimiteddeviceconfiguration


De Procedimental para OO


Programação Procedimental

Definição de Constantes

#define MAXCLIENTES 10


Programação Procedimental

#define MAXCLIENTES 10

typedef struct {

char *nome;

char *endereco;

} Cliente;

Definição de Tipos

#define MAXCLIENTES 10


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


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


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();

}


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();

}


Migrando para Java

Orientado a Objetos

Definição de Classes

Procedimental


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();

}

}


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


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/


  • Login