Introdução POO e Java Eduardo Figueiredo POO Aula 02

Slides:



Advertisements
Apresentações semelhantes
JAVA Orientação a Objetos
Advertisements

Java e OO – Isso é só um roteiro de aula
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Laboratório de Programação
Programação em Java Prof. Maurício Braga
Capítulo 1 Introdução.
03/08/2011 Professor Leomir J. Borba- –
Programação Aplicada Luiz Silveira Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Aula 02: Conceitos e tipos de linguagens.
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Rebeca Schroeder Linguagem Java Rebeca Schroeder
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Ferramentas Programação
Curso de Programação em C++
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Classes e objetos Arrays e Sobrecarga
Introdução a Programação Orientada a Objetos
Introdução a Programação JAVA
O Portal do Estudante de Computação
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
JAVA: Conceitos Iniciais
Introdução a Informática Software Eduardo Figueiredo 12 de Março de 2010 GEM03: Algoritmos e Programação de Computadores Aula 03.
JAVA Linguagem Ambiente de Desenvolvimento
Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.
Revisão de Conceitos Básicos Software Eduardo Figueiredo 25 de Março de 2010 INF62: Informática no Ensino de Física 2 Aula 04.
Implementar Primeirão em Java Eduardo Figueiredo 25 de Março de 2010 POOAula 06.
Introdução a Informática Software
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 02: Introdução.
Paradigmas da Programação – Semestre 2 – Aula 2 Introdução ao VS.Net Professores: Fábio de Paula Santos Eduardo Mantovani.
Programação I Aula 2 (Métodos)
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Classes, Objetos, Atributos e Métodos JAVA
Jornada de Cursos – J2ME Aula 2 – Configuração.
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Prof. Alexandre Monteiro Recife
02/08/2011 Professor Leomir J. Borba- –
Orientação a Objetos Parte I
Aula 1 - Fundamentos Java SE Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros – Agosto/2009.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
Programação I Laboratório I
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
Introdução à Engenharia de Software
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Laboratório I Mateus Raeder Material baseado nos originais da Profa. Denise Bandeira.
Linguagem de Programação C#
Programação Orientada a Objetos - Java
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
Aula Prática 4 Monitoria IP/CC (~if669).
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
Introdução Eduardo Figueiredo 04 de Março de 2010 POOAula 01 ou
OOP - Java Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora 1.
Utilizando UML e Padrões Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Março de 2010.
Linguagens de Programação II
Introdução JAVA Faculdade Mauricio de Nassau
Conceitos Básicos e Manipulação de Objetos
Programação Orientada a Objetos 2
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Introdução a Programação Orientada a Objetos
Java Disciplina: Programação II Professora: Mai-Ly Vanessa.
Igor Steinmacher, MSc. Java!!!!
Programação em Java Prof. Edvan Chaves.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Eclipse Hello World.
Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.
Introdução à plataforma Java. 2 A tecnologia Java Java: linguagem de programação e plataforma de desenvolvimento Criada pela Sun Microsystems Apoiada.
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Implementação Orientada a Objetos – Aula 02 Introdução ao Java Prof. Danielle Martin Universidade de Mogi das Cruzes.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Conhecendo o Ambiente de Programação Java Prof. Gustavo Wagner (modificações) Slides originais: Prof. Tiago Massoni Java Básico  Centro de Informática,
Transcrição da apresentação:

Introdução POO e Java Eduardo Figueiredo POO Aula 02 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 Caixas eletrônicos 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 Celular 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

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

Um Pouco de História 17

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) connected device configuration connected limited device configuration

De Procedimental para OO 26

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

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

Programação Procedimental #define MAXCLIENTES 10 #define MAXCLIENTES 10 typedef struct { char *nome; char *endereco; } Cliente; 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 #define MAXCLIENTES 10 typedef struct { char *nome; char *endereco; } Cliente; typedef struct { char *nome; char *endereco; } Cliente; 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 #define MAXCLIENTES 10 typedef struct { char *nome; char *endereco; } Cliente; typedef struct { char *nome; char *endereco; } Cliente; 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 Procedimental Estrutura do Programa #define MAXCLIENTES 10 Definição de Constantes typedef struct { char *nome; char *endereco; } Cliente; Definição de Tipos 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 Procedimental Orientado a Objetos Definição de Classes

Programação OO Definição de Classe Definição de Classe 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) 38

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/