Aula1

2,065 views

Published on

Curso de Programação OO com Java no IBTA

Published in: Lifestyle
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
2,065
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
0
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Aula1

  1. 1. Programação Orientada a Objetos com Java Aula 1 professor: Fábio Kimura e-mail: fkimura@yahoo.com
  2. 2. <ul><li>Agenda </li></ul>• Distribuições da Tecnologia Java • Tipos de Programas Java • “ Key Features” da Tecnologia Java • Conceitos errados sobre Java • Palavras Reservadas • Entendendo a Portabilidade do Java • Entendendo a Java Runtime Enviroment • Definição de Nomes • Anatomia de uma Classe Java • Aplicações Java Stand-Alone • Discussão • Exercícios • Exercícios valendo nota.
  3. 3. <ul><li>Evolução do Java </li></ul>3500 3000 2500 2000 1500 1000 500 0 Java 1.02 250 classes Lento e com bugs Applets/AWT Java 1.1 500 classes Um pouco mais rápido. Swing Java 2 (1.4) 2300 classes Muito rápido JME, JSE e JEE Applicações Web e Enterprise Java 5 3500 classes Mais poderoso, mais fácil de desenvolver 1996 1998 2000 2002 2004 HotSpot JIT
  4. 4. <ul><li>Distribuições da Tecnologia Java </li></ul>• Cliente/Servidor • Applet/Swing • Departamental • Desktop JEE Enterprise Edition • Telefone celular • Pequenos dispositivos • Móvel • e-Business • e-Commerce • Corporativo JSE Standard Edition JME Micro Edition
  5. 5. <ul><li>Tipos de programas Java </li></ul><ul><li>Stand-Alone </li></ul><ul><li>Java Applets™ </li></ul><ul><li>Java Servlets™ </li></ul><ul><li>Java Midlets™ </li></ul><ul><li>JavaBeans™ </li></ul>
  6. 6. <ul><li>“ Key Features” da Tecnologia Java </li></ul><ul><li>Simples </li></ul><ul><li>Orientada a objetos </li></ul><ul><li>Pronta para funcionar em rede (Network-savvy) </li></ul><ul><li>Distribuída </li></ul><ul><li>Robusta </li></ul><ul><li>Segura </li></ul><ul><li>Neutra em relação à plataforma </li></ul><ul><li>Múltiplas linhas de execução (Multithreaded) </li></ul><ul><li>Dinâmica </li></ul><ul><li>Portável </li></ul><ul><li>Alto desempenho </li></ul><ul><li>Interpretada </li></ul>Buzzwords do Java (White papers)
  7. 7. <ul><li>Conceitos errados sobre Java </li></ul><ul><li>Java é uma extensão do HTML. </li></ul><ul><li>Java é apenas mais uma linguagem. </li></ul><ul><li>Todos os programas Java executam em páginas Web. </li></ul><ul><li>JavaScript é uma versão “Light” da linguagem Java. </li></ul><ul><li>Java é interpretado, muito lento para aplicações sérias. </li></ul><ul><li>Java é proprietário e deve ser evitado por isso. </li></ul><ul><li>Java é uma linguagem de programação difícil de aprender. </li></ul><ul><li>Java é um ambiente fácil no qual programar. </li></ul>Conceitos errados sobre Java: Mais em http://www.apl.jhu.edu/~hall/java/FAQs-and-Tutorials.html
  8. 8. <ul><li>Portabilidade </li></ul><ul><li>Portabilidade x Neutra em relação à plataforma </li></ul><ul><li>Código C e C++ podem ser portáveis? </li></ul><ul><li>Um compilado Java pode ser dependente de plataforma? </li></ul><ul><li>Write Once, Run Anywhere ™ (WORA) </li></ul><ul><li>Código fonte x programa compilado </li></ul><ul><li>Niklaus Wirth (criador do Pascal) – Máquina hipotética </li></ul>
  9. 9. <ul><li>Palavras reservadas </li></ul>As palavras const e goto são reservadas, porém não são utilizadas. true, false, e null são considerados literais. while super native float const * volatile strictfp ** long finally class void static interface final char try short int extends catch transient return instanceof enum **** case throws public import else byte throw protected implements double break this private if do boolean synchronized package goto * default assert *** switch new for continue abstract adicionada em 5.0   **** adicionada em 1.4   *** adicionadas em 1.2   ** não utilizadas   *
  10. 10. <ul><li>Plataforma - dependência de Plataforma </li></ul>O código é compilado através do compilador da linguagem escolhida
  11. 11. <ul><li>Plataforma - dependência de Plataforma </li></ul>O código gerado pela compilação passa por uma processo de linkagem onde será vinculado ao sistema operacional
  12. 12. <ul><li>Plataforma - dependência de Plataforma </li></ul>O programa compilado e linkado, roda em uma plataforma específica
  13. 13. <ul><li>Plataforma – independência de Plataforma </li></ul>Em uma linguagem interpretada, o código fonte passa apenas pelo processo de compilação
  14. 14. <ul><li>Plataforma – independência de Plataforma </li></ul>Após a compilação, o código gerado (bytecode) é interpretado por uma máquina virtual que é executada pelo sistema operacional do computador
  15. 15. <ul><li>Plataforma – independência de Plataforma </li></ul>Resumo do processo de desenvolvimento de software em Java
  16. 16. <ul><li>Plataforma – independência de Plataforma </li></ul>Através da JVM, a mesma aplicação pode rodar em múltimas plataformas diferentes
  17. 17. <ul><li>Entendendo a Plataforma Java </li></ul><ul><li>JVM – Java Virtual Machine </li></ul><ul><li>Máquina Virtual Java </li></ul><ul><li>JRE – Java Runtime Environment </li></ul><ul><li>Ambiente de Execução de aplicativos Java </li></ul><ul><li>JDK – Java Development Kit </li></ul><ul><li>Ambiente de Desenvolvimento Java </li></ul>
  18. 18. <ul><li>Entendendo a Java Runtime Environment </li></ul>
  19. 19. <ul><li>Anatomia de uma classe Java </li></ul>
  20. 20. <ul><li>Anatomia de uma classe Java </li></ul>Declaração da Classe (palavra reservada class ) Declaração e inicialização de Atributos (opcional) Declaração de Métodos (opcional)
  21. 21. <ul><li>Exemplo de classe Java </li></ul><ul><li>public class Camisa { </li></ul><ul><li>public int id = 0; // identificador da camisa </li></ul><ul><li>public String descricao = “vazia”; // informações sobre a Camisa </li></ul><ul><li>// Os códigos são: V=Vermelha, A=Azul, B=Branca, N=Não definida </li></ul><ul><li>public char codigoCor = ‘N’; </li></ul><ul><li>public double preco = 0.0; // preco em Reais </li></ul><ul><li>public int quantidadeEmEstoque = 0; </li></ul><ul><li>// Mostra os dados da Camisa </li></ul><ul><li>public void mostrarDados() { </li></ul><ul><li>System.out.println(“Identificador: “ + id); </li></ul><ul><li>System.out.println(“Descrição:” + descricao); </li></ul><ul><li>System.out.println(“Código da cor: “ + codigoCor); </li></ul><ul><li>System.out.println(“Preço: “ + preco); </li></ul><ul><li>System.out.println(“Quantidade em estoque: “ + quantidadeEmEstoque); </li></ul><ul><li>} // fim do método mostrarDados </li></ul><ul><li>} // fim da classe </li></ul>
  22. 22. <ul><li>Anatomia de uma classe Java </li></ul><ul><li>Declaração de Classe </li></ul><ul><li>Sintaxe: </li></ul><ul><li>[ modificadores ] class NomeDaClasse { </li></ul><ul><li>} </li></ul><ul><li>Exemplo: </li></ul><ul><li>public class Camisa { </li></ul><ul><li>} </li></ul>
  23. 23. <ul><li>Anatomia de uma classe Java </li></ul><ul><li>Declaração e inicialização de Atributos </li></ul><ul><li>Sintaxe: </li></ul><ul><li>[ modificadores ] [tipo] nomeDoAtributo [= valorInicial]; </li></ul><ul><li>Exemplo: </li></ul><ul><li>public int id; </li></ul><ul><li>public char codigoCor = ‘A’; </li></ul><ul><ul><li>OBS: Caso um atributo de classe não seja inicializado, a JVM por default irá inicializá-la com seu respectivo valor default (veremos mais na próxima aula). </li></ul></ul>
  24. 24. <ul><li>Anatomia de uma classe Java </li></ul><ul><li>Declaração de métodos </li></ul><ul><li>Sintaxe: </li></ul><ul><li>[ modificadores ] [tipoRetorno] nomeDoMetodo([argumentos]) { </li></ul><ul><li>} </li></ul><ul><li>Exemplos: </li></ul><ul><li>public void mostrarDados(String dados) { </li></ul><ul><li>System.out.println(“dados:”+dados); </li></ul><ul><li>} </li></ul><ul><li>String recuperarNome() { </li></ul><ul><li>return nome; </li></ul><ul><li>} </li></ul>
  25. 25. <ul><li>Definição de Nomes </li></ul>• Um nome pode ser composto por letras (minúsculas e/ou maiúsculas), dígitos e os símbolos _ e $. • Um nome não pode ser iniciado por um dígito (0 a 9). • Letras maiúsculas são diferenciadas de letras minúsculas. (Full Case Sensitive) • Uma palavra-chave da linguagem Java não pode ser um identificador.
  26. 26. <ul><li>Aplicações Java Stand-Alone </li></ul>• O método main: public static void main(String args[]) { } • Toda classe Java que possuir o método acima, pode ser iniciada numa JRE exclusiva, no modo StandAlone • Nem todas as classes Java necessitam ter esse método
  27. 27. <ul><li>Fazer o download do JDK no site java . sun.com </li></ul><ul><li>Deverá ser realizado o download de acordo com o sistema operacional de desenvolvimento. </li></ul><ul><li>O processo de instalação, geralmente é realizado através de um wizard, onde não é necessário grandes interações. </li></ul><ul><li>Após a instalação do Java, é necessário configurar o PATH para o subdiretório bin da instalação. </li></ul><ul><li>A estrutura de diretórios da instalação do JDK é mostrada abaixo: </li></ul><ul><li>Instalando e configurando o JDK </li></ul>jdk1.6.0_<version> ____________________|___________________ | | | | | | | | | | | | | bin lib | demo | | | | LICENSE | | | jre | | COPYRIGHT | __|__ | README.txt include | | readme.html bin lib
  28. 28. <ul><li>Configurando </li></ul>PATH – Adicionar o diretório de instalação do Java seguido do subdiretório bin. PATH=C:Arquivos de programasJavajdk1.6.0_02in; %PATH% (verificar o “;” depois do bin) Iniciar->Painel de Controle->Sistema Aba “Avançado” Botão “ Variáveis de Ambiente”
  29. 29. <ul><li>Testando </li></ul>Iniciar->Executar...-> cmd Digitar: java –version Verifica a versão da JVM javac –version Verifica a versão do compilador Tela de sucesso: Tela de fracasso: (verifique o PATH) Tela de fracasso: (verifique o PATH e se você baixou a JDK e não a JRE)
  30. 30. <ul><li>Criando um programa Java </li></ul><ul><li>Criar um arquivo com extensão (.java) em um editor de texto. </li></ul><ul><li>O arquivo deve possuir o mesmo nome da Classe. </li></ul><ul><li>Exemplo (menor classe possível em Java): </li></ul><ul><li>class Teste { </li></ul><ul><li>} </li></ul><ul><li>Salvar o arquivo como “Teste.java” </li></ul><ul><li>Cuidado com maiúsculas e minúsculas! Java é “case sensitive”! </li></ul><ul><li>“ Teste.java” é diferente de “teste.java” </li></ul><ul><li>class Teste { é diferente de class teste { </li></ul><ul><li>} } </li></ul>
  31. 31. <ul><li>Exercício: Hello World (Windows) </li></ul>• Criar um diretório C:java e dentro dele: • Criar um arquivo de nome “HelloWorld.java” contendo: class HelloWorld { public static void main(String args[]) { System.out.println(“Hello Java World!”); } } • Abrir uma janela DOS (Iniciar -> Executar... -> cmd) • Compilar o arquivo e arrumar eventuais falhas de programação que possam ocorrer durante o processo: javac HelloWorld.java • Verificar se foi criado o arquivo .class correspondente ( HelloWorld.class ). • Iniciar a JVM executando o método main da classe: java HelloWorld
  32. 32. <ul><li>Exercícios </li></ul><ul><li>Dados os arquivos: </li></ul><ul><li>Teste1.java </li></ul><ul><li>Teste2.java </li></ul><ul><li>Teste3.java </li></ul><ul><li>Teste4.java </li></ul><ul><li>Teste5.java </li></ul><ul><li>Compile </li></ul><ul><li>Conserte os erros de compilação se existirem </li></ul><ul><li>Execute </li></ul><ul><li>Conserte os erros de execução se existirem </li></ul>
  33. 33. <ul><li>Exercício em casa (Valendo nota). </li></ul>• Envie um e-mail para [email_address] até às 17h da quarta-feira dia 13/08/2008 respondendo: “ Qual a importância de se escrever um código claro e legível?” • Baixe e instale a JDK 6. • Refaça os exercícios da aula. • Com a JDK 6 instalada, compile e execute a classe Mensagem.java • Não tente entender todo o programa agora, apenas exercite a compilação e execução. • Envie a saída do programa para fkimura@yahoo.com até as 17h00 do dia 13/08/2008
  34. 34. <ul><li>Exercício em casa (Valendo nota). </li></ul>• Com a JDK 6 instalada, compile e execute a classe Mensagem.java • Não tente entender todo o programa agora, apenas exercite a compilação e execução. • Envie a saída do programa para fkimura@yahoo.com até as 17h00 do dia 13/08/2008

×