SlideShare uma empresa Scribd logo
Introdução à Linguagem Java com JCreator Christien L. Rachid UNIPAC E-Mail: christienrachid@yahoo.com.br URL: http://www.christienrachid.xpg.com.br
Plano do  Capítulo Fases da Programação Ambientes Integrados de Desenvolvimento (IDE) JCreator 3.50 LE Introdução à Linguagem Java (Revisão)
Fases da Programa ç ão Java Disco Fase 1 Editor Programa é criado no editor e armazenado em disco. Disco Fase 2 Compilador Compilador cria bytecodes e os armazena em disco. . Fase 3 Disco Carregador de Classes Carregador de classe coloca bytecodes na memória.  Memória Principal ...
Fases da Programa ç ão Java . Fase 4 Verificador de  bytecodes Verificador de bytecodes confirma que todos os bytecodes são válidos e não violam restrições de segurança do Java Memória Principal ... . Fase 5 Intepretador Interpretador lê os bytecodes e os traduz para uma linguagem que o computador pode entender, possivelmente armazenando valores dos dados enquanto executa o programa. Memória Principal ...
Ambientes Integrados de Desenvolvimento (IDE)  Editores de texto com suporte a programação Java  jEdit, SciTE, tsWebEditor, Crimson Editor, ConTEXT Programmers editor, JEXT Java Text Editor, JED, Programmer’s File Editor (PFE) IDEs Básicos JCreator Lite Edition (LE) (Gratuito) URL: http://www.jcreator.com/ Gel (Gratuito) URL: http://www.gexperts.com/ Desenvolvimento está suspenso desde meados de 2004
Ambientes Integrados de Desenvolvimento (IDE)  IDEs Avançados Eclipse URL: http://www.eclipse.org NetBeans URL: http://www.netbeans.org JBuilder  URL: http://www.borland.com Jdeveloper 10g URL: http://www.oracle.com.br
JCreator  3.50 LE  Porque adotamos  Pequeno tamanho (2,21 MB - Instalador), rápida carga, simples Não requer abertura de Prompt de comando, nem uso de comandos do DOS para compilar ou executar os programas Java, estes são executados diretamente, através de menus ou ícones ajudam a superar limitações em comparação com outras IDE mais sofisticadas Facilita o trabalho do programador iniciante em Java Apresenta vários recursos que facilitam o trabalho de desenvolvimento
JCreator  3.50 LE  Requisitos Instalação do JDK (6.0):  http://java.sun.com/javase/downloads/index.jsp Contém as ferramentas para trabalharmos com o Java (compiladores, viewers, etc). Contém o ambiente de execução Java (JRE) Documentação da linguagem Java. (J2SE 6.0 Documentation) http://java.sun.com/javase/downloads/index.jsp Pode ser integrada na IDE, facilitando a consulta a dúvidas na linguagem. Instalação do JCreator Lite Edition (LE) URL: http://www.jcreator.com/
JCreator 3.50 LE: Interface Estrutura de arquivos e pastas Edição do código fonte Apresenta erros de compilação Mostra as propriedades do arquivo
JCreator 3.50 LE: Workspaces e Projetos Projetos Modo na qual JCreator organiza os arquivos de programa JCreator cria uma pasta onde todos os arquivos do programa são mantidos para um projeto particular (p.e. Exercicio1, Exercicio2) Permite que arquivos de diferentes projetos estejam em diferentes pastas
JCreator 3.50 LE: Workspaces e Projetos Workspaces Workspace é outra pasta Contém um certo número de projetos Por exemplo, pode-se criar um workspace chamado Semana1 com os projetos Exercicio1 e Exercicio2 Workspaces e Projetos facilitam a organização do trabalho
JCreator 3.50 LE:  Workspaces e Projetos Criando um workplace
JCreator 3.50 LE:  Workspaces e Projetos Criando um projeto
JCreator 3.50 LE:  « Ola Mundo »
Arquivos Fonte Extensão .java Pode conter diversas classes  Uma ÚNICA pode ser pública (public) Mesmo nome que a classe pública mais a extensão .java
Arquivos Fonte Pode conter 3 elementos: 1) Declaração de pacote 2) Sentenças de importação 3) Definição de classes Devem obedecer essa ordem opcional obrigatório
Classes e Pacotes Classes Agrupam definições de atributos, construtores e métodos Pacotes Agrupam definições de classes relacionadas Pacotes facilitam a localização das classes Definição: Coleção de unidades de compilação relacionadas, permitindo: Controle de acesso Um atributo ou método protegido só fica visível dentro do pacote Gerência do espaço de nomes Duas classes no mesmo pacote não podem ter o mesmo nome
Palavras Reservadas Como toda linguagem, Java possui identificadores reservados para comandos que permitem a execução de suas instruções IMPORTANTE: você não pode utilizar palavras-chave Java como nome de variáveis ou classes.
Aplicação Ola Mundo 1 2   // Relembrando a estrutura de um programa Java 3   4  public class  OlaMundo { 5 6   /** 7  *  IMPRIME NO CONSOLE "OLA MUNDO" 8  */ 9 10   public static void  main( String [] args) { 11 12   System.out.println( "Ola Mundo" ); 13   }  14  } 15
Comentários Comentários /* texto */ O compilador ignora tudo entre /* e */ /** documentacao */ Indica um comentário para documentação.  Utilizado pela ferramenta javadoc // texto Compilador ignora todos os caracteres de // até o  final da linha 2  // Relembrando a estrutura de um programa Java
Classes Início da declaração da classe OlaMundo Todo programa Java tem ao menos uma classe definida pelo usuário Palavra-chave : palavras reservadas para uso da linguagem Palavra-chave <class> seguida pelo nome da classe class NomeDaClasse { // aqui vai o código } 4  public class OlaMundo {
Classes Início da declaração da classe OlaMundo Nome da Classe: identificador  Série de caracteres formados por letras, digitos, underscores (_) e dollar ($) Não comece com dígitos e não utilise espaços Exemplos: BemVindo1, $valor, _valor, botao7 7botao não é válido Java é case sensitive a1 e A1 são diferentes Capitalize todas as palavra (e.g. MinhaClasse)  Por enquanto use sempre a palavra-chave: public Visto mais adiante 4  public class OlaMundo {
Classes Nome do arquivo Arquivo deve ter o mesmo nome da classe com a extensão .java OlaMundo.java Chaves { Início do corpo de toda classe } fecha a declaração da classe (linha 14) 4  public class OlaMundo {
Ola Mundo: método main Seqüência de declarações definindo o comportamento do método Define  main()   como  método de classe Declaração de tipo dos argumentos: java Oi &quot;c:\softs&quot; &quot;www.sun.com&quot;    Oi.main({&quot;c:\softs&quot;,&quot;www.sun.com&quot;}) class OlaMundo { public static void  main (String[] args) { } } ... ... ...
Ola Mundo: método main Partida de toda aplicação Java Aplicação começa a execução com o método main Apenas um método main por aplicação Nesta assinatura: public indica que o método pode ser chamado por qualquer objeto. static indica que o método pode ser chamado mesmo que nenhuma instância da classe tenha sido criada. void indica que o método não retorna nenhum valor. Chaves  { -> Início do corpo de todo método } -> fecha a declaração do método (linha 13) 10   public static void main(String[] args) {
Ola Mundo: método main Argumentos do método Os argumentos de um método em Java sempre aparecem na assinatura após o nome do método, dentro de parênteses.  A declaração do argumento é sempre do tipo (TipoDoArgumento nomeDoArgumento).  Múltiplos argumentos são separados por vírgula, como em (Tipo1 arg1, Tipo2 arg2).  Métodos sem argumentos devem ter na assinatura um () após o nome. No caso específico do método main, o argumento é um array de Strings, que pode ser utilizado para execução com opções de inicialização.  10   public static void main(String[] args) {
Ola Mundo: método main // Explorando nosso primeiro programa Java // Passando Argumentos na execução do programa public class  MeuPrimeiroPrograma4 { // o método main inicia a execução do aplicativo Java public static void  main (String arg[]) { System.out.print(&quot;\n\nImprimindo o que você digitou\n &quot;); System.out.println(arg[0]); } // fim do método main } // fim da classe MeuPrimeiroPrograma
Ola Mundo: System.out Imprime uma string de caracteres System.out Objeto de saída padrão Imprime na janela de comando (i.e., prompt MS-DOS) Método  System.out.println   Apresenta uma linha de texto Argumento dentro de parênteses Esta linha é conhecida como instrução Instruções devem terminar com ; 12   System.out.println(&quot;Ola Mundo&quot;);
Ola Mundo: System.out Imprime uma string de caracteres A aplicação usa a variável out da classe System, da API Java, para mostrar uma mensagem na tela.  out é um objeto da classe java.io.PrintStream.  Println é um método da Classe PrintStream que mostra um string na tela de console.  Nenhum objeto precisou ser criado nesta chamada tanto a variável out quanto o método println são estáticos (static).  12   System.out.println(&quot;Ola Mundo&quot;);
Caracteres especiais Backslash (  \  ) Indica um caractere especial
Importando Pacotes Palavra-chave import Usada para declarar uso de uma classe Scanner do pacote java.util Pacotes (Packages) Conjunto de classes relacionadas é chamado de pacote Grupo de todos os pacotes é conhecido como biblioteca de classe java ou Java API (Java applications programming interface) Scanner está no pacote java.util Os nomes dos pacotes Java começam com Java (pacotes do núcleo da linguagem) ou Javax (extensões ao núcleo) import java.util.Scanner;
Importando Pacotes Exemplos de pacotes Java: java.lang: Tipos e funcionalidades básicas da linguagem. Inclui, entre outras, as classes String, Math, Integer e Thread. É importada automaticamente em seus programas Java; java.awt: componentes gráficos originais da linguagem (Abstract Window Toolkit);  javax.swing: pacote de extensão aos componentes gráficos com melhoramentos à biblioteca AWT java.applet: classes específicas para tratamento de applets; java.net: recursos de rede (sockets e URLs); java.io: classes para escrita e leitura em arquivos; java.util: classes para tarefas gerais, tais como vetores e string de tokens.
Importando Pacotes Nome completo de uma classe: nome do pacote + nome da classe Ex.: java.lang.String -> nome completo da classe String Sentença import: Permite a utilização de membros de pacotes sem a necessidade de referenciá-los a partir do seu nome completo import <nome completo da classe> A importação pode ser de: Apenas um membro do pacote Ex.: import java.awt.Button; Todos os membros do pacote Ex.: import java.util.*; Se não forem usadas todas as classes desse pacote, o compilador vai descobrir quais foram as classes usadas e as importá-las em tempo de compilação O pacote java.lang é sempre importado import java.lang.*;
Declarando variáveis Declaração de Variáveis Tipo identificador [ = valorInicial ] Tipo identificador1, identificador2, identificador3; Tipos de dados primitivos Inteiros:  byte / short / int / long Reais:  float / double Outros:  char / boolean Nomes de variáveis Série de caracteres Unicode Não pode ser palavra chave Não pode ser nome de outra variável ou classe int numero1; // declara variável: primeiro numero a somar  int numero2; // declara variável: segundo numero a somar  int soma; // declara variável: soma de numero1 com numero2
Tipos Primitivos
Tipos Primitivos Inteiros e seus Operadores Multiplicação, Divisão e Resto  *  /  % Deslocamento de Bits <<  >> Menos unário - Inversão do padrão de bits, ou not bit-a-bit ~ Incremento e Decremento ++  -- Relacionais, comparam valores e produzem true ou false > < <= >= == != AND, OR e XOR &  |  ^ Adição e Subtração +  - Comentários Operador
Tipos primitivos Operadores de Incremento e Decremento
Tipos primitivos Operadores Aritméticos de Atribuição Java fornece vários operadores que abreviam as expressões   de atribuição ; A simplificação de sintaxe não é a única vantagem desses operadores. Eles aumentam a velocidade de acesso às variáveis em programas. Exemplo Exemplificação Atribui c +=  7 c = c + 7  10  a  c d -= 4 d = d - 4 1  a  d e *= 5 e = e * 5 20  a  e f /= 3 f = f / 3 2  a  f g %=9 g = g % 9 3  a  g Exemplos:  int  c = 3, d = 5, e = 4, f = 6, g = 12 Operador de  atribuição += -= *= /= %=
Tipos primitivos Ponto Flutuante e operações double (64 bits) float (32 bits) Multiplicação, Divisão e Resto  *  /  % Menos unário - Incremento e Decremento ++  -- Relacionais, comparam valores e produzem true ou false > < <= >= == != Adição e Subtração +  - Comentários Operador
Tipos primitivos Booleanos true, false Igualdade e ‘não Igualdade’  ==  != Negação Lógica (NOT) ! AND e OR &&  || Ternário     HrIncial = (Turno == Manhã ? 7 : 13) //equivalente: if (Turno == Manhã) HrIncial = 7; else HrIncial = 13; ?: AND e OR, (executa obrigatoriamente os dois lados da expressão, ainda que isso não seja necessário para avaliar a expressão) &  | Comentários Operador
Tipos primitivos Caracteres e operadores Classe que tem uma seqüência de chars String Um único caractete Unicode (16 bits) char Indexação (zero...n)  se  X=“JAVA” então X[2]=‘V’ [ ] Concatenação + Comentários Operador
Conversões Promoções de Tipo Conversões “inofensivas” (que não apresentam nenhum risco de erro) são aceitas implicitamente pelo compilador. Figure 6.5. Promotions allowed for primitive types. Tipo  Promoções válidas double None float double  long float ou double  int long, float ou double  char int, long, float ou double  short int, long, float ou double (mas não char)  byte short, int, long, float ou double (mas não char)  boolean None (não podem ser considerados números em Java)
Conversões Conversões Conversões com possível perda de dados devem ser feitas explicitamente (truncamento) float para int double para long long para int ... int i ; float f ; String s ; ... f = i; //promoção i = (int)f; //explicita ...
Tipos Referência Tipos Referência  Todos os demais tipos de Java! Definidos a partir de declarações de classes Quando uma variável em Java é declarada como sendo do tipo de uma classe, esta variável é considerada como sendo do tipo referência Declaração e inicialização: String str = “Entendendo Strings”; Banco brasil = new Banco (“Brasil”);  Diferentemente das variáveis de tipos primitivos, que armazenam um valor, variáveis do tipo referência armazenam um apontador para um objeto em memória
Strings Strings São seqüências de caracteres delimitados por “” Representadas por instâncias da classe String (pacotes java.lang) Declaração e Inicialização: String saudacao = “Bom dia!”; Variável saudacao conterá um apontador (referência) para um objeto do tipo String que estará em memória e que “armazenará” a informação “Bom dia!” Exemplo: String s1 = “string1”; String s2 = “string2”; String s3 = new String(“s1”); char data[] = { ‘a’, ‘b’, ‘c’ }; String cc = “ab”+ “cde”; As strings podem ser concatenadas através do operador +
Strings Strings: Comparação  Não use o operador == para comparar Strings O operador == testa referências quando utilizado com objetos, ou seja, testa se os objetos apontam para mesma posição de memória Use o método equals() da classe String Use o método equalsIgnoreCase() da classe String se não for importante a caixa (maiúsculas ou minúsculas) String nome = “Lisa”; if(!nome.equals(“Bart”)) If(“Lisa”.equals(nome))
Classe Math Expressões Matemáticas Os métodos da classe Math permitem realizar cálculos comuns necessários em expressões matemáticas. Exemplos de chamadas de métodos da classe Math: Função raiz quadrada:  double y = Math.sqrt(10.0); Função mínimo: double z = Math.min(x,10); Os métodos da classe Math são métodos estáticos não necessitam de objetos da classe para sua chamada você deve preceder as chamadas dos métodos com o nome da classe seguido de ponto
Classe Math Chamada de Métodos Métodos podem ser chamados em declarações de variáveis ou como parâmetros de outros métodos float z = Math.sqrt(4.0*x); System.out.println(Math.sqrt(x+y*f)); A classe Math possui duas constantes importantes em programas matemáticos:  Math.E  = 2.7282818284590452354  // valor base de logaritmos naturais Math.PI = 3.14159265358979323846  // relação entre a circunferência e o diâmetro de círculos
Classe Math Método abs( x ) ceil ( x ) cos( x ) exp( x ) floor( x ) log( x ) max( x, y ) min( x, y ) pow( x, y ) sin( x ) sqrt( x ) tan( x ) Exemplo pow (2.0, 7.0) é 128.0;  pow (9.0,0.5) é 3.0 sin (0.0) é 0.0 sqrt (900.0) é 30.0;  sqrt (9.0) é 3.0 tan (0.0) é 0.0 tangente trigonométrica de x (x em  radianos) abs (23.7) é 23.7;  abs (0.0) é 0.0;  abs (-23.7) é 23.7 ceil (9.2) é 10.0;  ceil (-9.8) é -9.0;  cos (0.0) é 1.0 exp (1.0) é 2.718281828 floor (9.2) é 9.0;  floor (-9.8) é -10.0 log (2.718282) é 1.0; log (7.389056) é 2.0 max ( 2.3, 12.7) é 12.7; max (-2.3;-12.7) é -2.3 min ( 2.3, 12.7) é 2.3;  min (-2.3;-12.7) é -12.7 menor valor entre x e y (também em  versões para  float ,  int e  long ) x elevado à potência y ( x y ) seno trigonométrico de x (x em  radianos) raiz quadrada de x  método esponencial  e x arredonda o valor de x para o maior  inteiro não maior que x logaritmo natural de x (base e) maior valor entre x e y (também em  versões para  float ,  int e  long ) Descrição valor absoluto de x (tem versões para  float ,  int e  log ) arredonda o valor de x para o menor  inteiro não menor que x co-seno trigonométrico de x (x em  radianos)
Leitura do Teclado Usando a classe java.util.Scanner (J2SE 5.0) Uma classe nova que permite converter um texto para tipos primitivos Texto pode ser obtido das mais diversas fontes, como: Strings InputStream Arquivos Permite separar o texto em tokens, que são seqüências de caracteres separados por delimitadores (default são espaço, tabs e mudanças de linha).
Leitura do Teclado Para ler de forma confortável texto do canal de entrada padrão É preciso criar primeiro um Scanner sobre canal System.in que esta associado ao teclado Para cada um dos tipos primitivos há um método correspondente com a assinatura nextXxx() que retorne um valor desse tipo.  Se a string não puder ser interpretada como sendo deste tipo, é lançado uma excepção do tipo InputMismatchException.  Exemplos de algumas leituras de tokens:  String aToken = sc.next() ;  //Lê um token  int num1 = sc.nextInt() ;  //Lê um token inteiro  double num2 = sc.nextDouble() ;  //Lê um token real String linha = sc.nextLine() ;  //Lê uma linha  Scanner input = new Scanner(System.in);
Impressão Formatada dados formatados Printf Primeiro argumento é a string formatada (texto fixo e especificadores de formato) Especificadores de formato começam com (%) e são seguidos por um caractere que representa o tipo de dado %s para uma string  System.out.printf( &quot;%s\n%s\n&quot;, &quot; Bem vindo&quot;, &quot; a Java!&quot; );  %d para um decimal %f para um número ponto flutuante System.out.printf( &quot;A soma eh %d\n&quot;, soma ); // apresenta soma
Exemplo 2: Soma // Programa de adição que apresenta a soma de dois números. import java.util.Scanner; // programa usa a classe Scanner da package java.util public class Soma { // método main inicia a execução da aplicação Java  public static void main( String args[] ) { // cria objeto da classe Scanner para obter entradas do teclado Scanner input = new Scanner( System.in );  int numero1; // declara variável: primeiro numero a somar  int numero2; // declara variável: segundo numero a somar  int soma; // declara variável: soma de numero1 com numero2 System.out.print( &quot;Digite o primeiro inteiro: &quot; ); // prompt numero1 = input.nextInt(); // lê primeiro número via método nextInt da classe Scanner  System.out.print( &quot;Digite o segundo inteiro: &quot; ); // prompt numero2 = input.nextInt(); // lê segundo numero soma = numero1 + numero2; // adiciona números System.out.printf( &quot;A soma eh %d\n&quot;, soma ); // apresenta soma } // fim do metodo main } // fim da classe Soma
Prática Exercício 1 Faça um programa que calcula a média de três números reais digitados pelo usuário Utilize a classe Scanner e printf
Caixa de Dialogo: Caixa de Mensagem  Classe JOptionPane  Oferece caixas de diálogo pré-empacotadas que permitem aos programas apresentarem janelas contendo mensagens para o usuário Faz parte do pacote javax.swing Pacote que contém várias classes que ajudam o programador a criar GUIs (Graphical User Interfaces)  // Imprime linhas na caixa de dialogo import javax.swing.JOptionPane; // importa classe JOptionPane  public class Dialog1 {  public static void main( String args[] ) {  // apresenta um dialogo com a mensagem JOptionPane.showMessageDialog( null, « Bem vindo\na\nJava&quot; );  }  }
Caixa de Dialogo: Caixa de Mensagem Classe JOptionPane  Método JOptionPane.showMessageDialog  Método estático: não requer a instanciação de um objeto Argumentos Primeiro usado para posicionamento na tela Null para colocar a caixa no centro da tela do frame default Segundo é a String a apresentar // Imprime linhas na caixa de dialogo import javax.swing.JOptionPane; // importa classe JOptionPane  public class Dialog1 {  public static void main( String args[] ) {  // apresenta um dialogo com a mensagem JOptionPane.showMessageDialog( null, « Bem vindo\na\nJava&quot; );  }  }
Caixa de Dialogo: Caixa de Mensagem Classe JOptionPane  Método JOptionPane.showMessageDialog  Argumentos Primeiro usado para posicionamento na tela Null para colocar a caixa no centro da tela do frame default Segundo é a String a apresentar Terceiro é o titulo da janela Quarto é o tipo de mensagem // Imprime linhas na caixa de dialogo import javax.swing.JOptionPane; // importa classe JOptionPane  public class Dialog2 {  public static void main( String args[] ) {  // apresenta um dialogo com a mensagem JOptionPane.showMessageDialog( null,  &quot; Bem vindo\na\nJava &quot;  ,  &quot; Titulo &quot; ,  JOptionPane.INFORMATION_MESSAGE );  }  }
Caixa de Dialogo: Digitando texto Classe JOptionPane  Método JOptionPane.showInputDialog  import javax.swing.JOptionPane;  public class BoasVindas { public static void main( String args[] ) {  // solicita a digitação do nome String nome = JOptionPane.showInputDialog(&quot;Qual é seu nome?&quot; );  // cria a mensagem  String mensagem = String.format(&quot;Bem vindo, %s, a Desenvolvimento  orientado a objetos!&quot;, nome );  // Apresenta a mensagem de boas vindas  JOptionPane.showMessageDialog( null, mensagem );  } }
Caixa de Dialogo: Digitando texto Método showInputDialog() Variáveis informadas aos programas Java são sempre Strings que devem ser convertidas. Erros de entradas inesperadas (tipos incompatíveis com as conversões) devem ser tratados pelo usuário (veremos como em tratamento de exceções).  import javax.swing.JOptionPane;  public class EntradaInteiro { public static void main( String args[] ) {  // solicita a digitação do nome String sInt = JOptionPane.showInputDialog(« Digite Inteiro?&quot; );  // cria a mensagem  int numero =  Integer.parseInt( sInt); } }
Exercícios Modifique o programa de adição de maneira a utilizar entradas baseada em diálogos com JOptionPane em vez da entrada baseada em console Escreva uma instrução (ou comentário) para realizar cada uma das seguintes tarefas:  Declarar que um programa calculará o produto de três inteiros Declarar as variáveis  x,y  e  z  e  resultado  como tipo  int Declarar as variáveis  xVal ,  yVal  e  zVal  como do tipo String Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em  xVal Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em  yVal Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em  zVal Converter  xVal  em um  int   e armazenar o resultado na variável  x Converter  yVal  em um  int   e armazenar o resultado na variável  y Converter  zVal  em um  int   e armazenar o resultado na variável  z Computar o produto dos três inteiros contidos em  x,y  e  z  e atribuir o resultado à variável  resultado Exibir um diálogo contendo a mensagem “O Produto é” seguindo do valor da variável  resultado Retornar um valor a partir do programa para indicar que o mesmo foi finalizado com sucesso.

Mais conteúdo relacionado

PPT
1707331929 ltp iv java original
PDF
Java 01
PDF
Erros comuns em java
PPTX
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
PPTX
Curso Básico de Java - Aula 2
DOCX
Java Day 2011 - Reflection: Maximizando a produtividade em Java
PDF
Java introdução ao java
PPTX
Introdução à Metaprogramação com Java Reflection API
1707331929 ltp iv java original
Java 01
Erros comuns em java
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Curso Básico de Java - Aula 2
Java Day 2011 - Reflection: Maximizando a produtividade em Java
Java introdução ao java
Introdução à Metaprogramação com Java Reflection API

Mais procurados (19)

ODP
Construção de Frameworks com Annotation e Reflection API em Java
PDF
Curso de Java (Parte 2)
PDF
Aula 02 Primeiro Cod Java
PPT
Curso Java Basico
PDF
03 fundamentos java
PDF
Apostila - Linguagem de Programação I
PDF
Curso de Java (Parte 1)
PDF
Java - Aprenda rápido
PDF
Listas (parte 2 de 3)
PDF
Ficha javacc
PPTX
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
PDF
Curso Java I
PDF
Apostila: Curso de java III
PPTX
Poo1 aula 1 - java - história e introdução
PPT
PDF
Fundamentos de Objetos Remotos
Construção de Frameworks com Annotation e Reflection API em Java
Curso de Java (Parte 2)
Aula 02 Primeiro Cod Java
Curso Java Basico
03 fundamentos java
Apostila - Linguagem de Programação I
Curso de Java (Parte 1)
Java - Aprenda rápido
Listas (parte 2 de 3)
Ficha javacc
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
Curso Java I
Apostila: Curso de java III
Poo1 aula 1 - java - história e introdução
Fundamentos de Objetos Remotos
Anúncio

Semelhante a Java (20)

PPTX
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
PPTX
Curso Java Básico - Aula 04
PPT
Introducao logica2
PPTX
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
PPT
classes_objetos_ e_cia_em_java
PDF
Java e orientação a objetos - aula 01
PPTX
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
ODP
Java 02 Iniciando Uso Java
PPT
Introdução ao Java 5
PDF
Como usar a documentação da API Java 2
PPT
Introdução a conceitos e a Praticas de Programação
ODP
Java 11 Pacotes
PPT
Aula1
PDF
Introdução ao java Alo Mundo
PPTX
Curso Java Básico - Aula02
ODP
Programação Defensiva
PDF
Java primeiros-passos
PDF
001 cesep - turma java
PPTX
01 introducao ao java
Poo1 aula 2 - java - apresentação do netbeans e 1º programa
Curso Java Básico - Aula 04
Introducao logica2
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
classes_objetos_ e_cia_em_java
Java e orientação a objetos - aula 01
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
Java 02 Iniciando Uso Java
Introdução ao Java 5
Como usar a documentação da API Java 2
Introdução a conceitos e a Praticas de Programação
Java 11 Pacotes
Aula1
Introdução ao java Alo Mundo
Curso Java Básico - Aula02
Programação Defensiva
Java primeiros-passos
001 cesep - turma java
01 introducao ao java
Anúncio

Último (19)

PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Processos na gestão de transportes, TM100 Col18
Aula04-Academia Heri- Tecnologia Geral 2025
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Apple Pippin Uma breve introdução. - David Glotz
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
COBITxITIL-Entenda as diferença em uso governança TI
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Aula 18 - Manipulacao De Arquivos python
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18

Java

  • 1. Introdução à Linguagem Java com JCreator Christien L. Rachid UNIPAC E-Mail: christienrachid@yahoo.com.br URL: http://www.christienrachid.xpg.com.br
  • 2. Plano do Capítulo Fases da Programação Ambientes Integrados de Desenvolvimento (IDE) JCreator 3.50 LE Introdução à Linguagem Java (Revisão)
  • 3. Fases da Programa ç ão Java Disco Fase 1 Editor Programa é criado no editor e armazenado em disco. Disco Fase 2 Compilador Compilador cria bytecodes e os armazena em disco. . Fase 3 Disco Carregador de Classes Carregador de classe coloca bytecodes na memória. Memória Principal ...
  • 4. Fases da Programa ç ão Java . Fase 4 Verificador de bytecodes Verificador de bytecodes confirma que todos os bytecodes são válidos e não violam restrições de segurança do Java Memória Principal ... . Fase 5 Intepretador Interpretador lê os bytecodes e os traduz para uma linguagem que o computador pode entender, possivelmente armazenando valores dos dados enquanto executa o programa. Memória Principal ...
  • 5. Ambientes Integrados de Desenvolvimento (IDE) Editores de texto com suporte a programação Java jEdit, SciTE, tsWebEditor, Crimson Editor, ConTEXT Programmers editor, JEXT Java Text Editor, JED, Programmer’s File Editor (PFE) IDEs Básicos JCreator Lite Edition (LE) (Gratuito) URL: http://www.jcreator.com/ Gel (Gratuito) URL: http://www.gexperts.com/ Desenvolvimento está suspenso desde meados de 2004
  • 6. Ambientes Integrados de Desenvolvimento (IDE) IDEs Avançados Eclipse URL: http://www.eclipse.org NetBeans URL: http://www.netbeans.org JBuilder URL: http://www.borland.com Jdeveloper 10g URL: http://www.oracle.com.br
  • 7. JCreator 3.50 LE Porque adotamos Pequeno tamanho (2,21 MB - Instalador), rápida carga, simples Não requer abertura de Prompt de comando, nem uso de comandos do DOS para compilar ou executar os programas Java, estes são executados diretamente, através de menus ou ícones ajudam a superar limitações em comparação com outras IDE mais sofisticadas Facilita o trabalho do programador iniciante em Java Apresenta vários recursos que facilitam o trabalho de desenvolvimento
  • 8. JCreator 3.50 LE Requisitos Instalação do JDK (6.0): http://java.sun.com/javase/downloads/index.jsp Contém as ferramentas para trabalharmos com o Java (compiladores, viewers, etc). Contém o ambiente de execução Java (JRE) Documentação da linguagem Java. (J2SE 6.0 Documentation) http://java.sun.com/javase/downloads/index.jsp Pode ser integrada na IDE, facilitando a consulta a dúvidas na linguagem. Instalação do JCreator Lite Edition (LE) URL: http://www.jcreator.com/
  • 9. JCreator 3.50 LE: Interface Estrutura de arquivos e pastas Edição do código fonte Apresenta erros de compilação Mostra as propriedades do arquivo
  • 10. JCreator 3.50 LE: Workspaces e Projetos Projetos Modo na qual JCreator organiza os arquivos de programa JCreator cria uma pasta onde todos os arquivos do programa são mantidos para um projeto particular (p.e. Exercicio1, Exercicio2) Permite que arquivos de diferentes projetos estejam em diferentes pastas
  • 11. JCreator 3.50 LE: Workspaces e Projetos Workspaces Workspace é outra pasta Contém um certo número de projetos Por exemplo, pode-se criar um workspace chamado Semana1 com os projetos Exercicio1 e Exercicio2 Workspaces e Projetos facilitam a organização do trabalho
  • 12. JCreator 3.50 LE: Workspaces e Projetos Criando um workplace
  • 13. JCreator 3.50 LE: Workspaces e Projetos Criando um projeto
  • 14. JCreator 3.50 LE: « Ola Mundo »
  • 15. Arquivos Fonte Extensão .java Pode conter diversas classes Uma ÚNICA pode ser pública (public) Mesmo nome que a classe pública mais a extensão .java
  • 16. Arquivos Fonte Pode conter 3 elementos: 1) Declaração de pacote 2) Sentenças de importação 3) Definição de classes Devem obedecer essa ordem opcional obrigatório
  • 17. Classes e Pacotes Classes Agrupam definições de atributos, construtores e métodos Pacotes Agrupam definições de classes relacionadas Pacotes facilitam a localização das classes Definição: Coleção de unidades de compilação relacionadas, permitindo: Controle de acesso Um atributo ou método protegido só fica visível dentro do pacote Gerência do espaço de nomes Duas classes no mesmo pacote não podem ter o mesmo nome
  • 18. Palavras Reservadas Como toda linguagem, Java possui identificadores reservados para comandos que permitem a execução de suas instruções IMPORTANTE: você não pode utilizar palavras-chave Java como nome de variáveis ou classes.
  • 19. Aplicação Ola Mundo 1 2 // Relembrando a estrutura de um programa Java 3 4 public class OlaMundo { 5 6 /** 7 * IMPRIME NO CONSOLE &quot;OLA MUNDO&quot; 8 */ 9 10 public static void main( String [] args) { 11 12 System.out.println( &quot;Ola Mundo&quot; ); 13 } 14 } 15
  • 20. Comentários Comentários /* texto */ O compilador ignora tudo entre /* e */ /** documentacao */ Indica um comentário para documentação. Utilizado pela ferramenta javadoc // texto Compilador ignora todos os caracteres de // até o final da linha 2 // Relembrando a estrutura de um programa Java
  • 21. Classes Início da declaração da classe OlaMundo Todo programa Java tem ao menos uma classe definida pelo usuário Palavra-chave : palavras reservadas para uso da linguagem Palavra-chave <class> seguida pelo nome da classe class NomeDaClasse { // aqui vai o código } 4 public class OlaMundo {
  • 22. Classes Início da declaração da classe OlaMundo Nome da Classe: identificador Série de caracteres formados por letras, digitos, underscores (_) e dollar ($) Não comece com dígitos e não utilise espaços Exemplos: BemVindo1, $valor, _valor, botao7 7botao não é válido Java é case sensitive a1 e A1 são diferentes Capitalize todas as palavra (e.g. MinhaClasse) Por enquanto use sempre a palavra-chave: public Visto mais adiante 4 public class OlaMundo {
  • 23. Classes Nome do arquivo Arquivo deve ter o mesmo nome da classe com a extensão .java OlaMundo.java Chaves { Início do corpo de toda classe } fecha a declaração da classe (linha 14) 4 public class OlaMundo {
  • 24. Ola Mundo: método main Seqüência de declarações definindo o comportamento do método Define main() como método de classe Declaração de tipo dos argumentos: java Oi &quot;c:\softs&quot; &quot;www.sun.com&quot;  Oi.main({&quot;c:\softs&quot;,&quot;www.sun.com&quot;}) class OlaMundo { public static void main (String[] args) { } } ... ... ...
  • 25. Ola Mundo: método main Partida de toda aplicação Java Aplicação começa a execução com o método main Apenas um método main por aplicação Nesta assinatura: public indica que o método pode ser chamado por qualquer objeto. static indica que o método pode ser chamado mesmo que nenhuma instância da classe tenha sido criada. void indica que o método não retorna nenhum valor. Chaves { -> Início do corpo de todo método } -> fecha a declaração do método (linha 13) 10 public static void main(String[] args) {
  • 26. Ola Mundo: método main Argumentos do método Os argumentos de um método em Java sempre aparecem na assinatura após o nome do método, dentro de parênteses. A declaração do argumento é sempre do tipo (TipoDoArgumento nomeDoArgumento). Múltiplos argumentos são separados por vírgula, como em (Tipo1 arg1, Tipo2 arg2). Métodos sem argumentos devem ter na assinatura um () após o nome. No caso específico do método main, o argumento é um array de Strings, que pode ser utilizado para execução com opções de inicialização. 10 public static void main(String[] args) {
  • 27. Ola Mundo: método main // Explorando nosso primeiro programa Java // Passando Argumentos na execução do programa public class MeuPrimeiroPrograma4 { // o método main inicia a execução do aplicativo Java public static void main (String arg[]) { System.out.print(&quot;\n\nImprimindo o que você digitou\n &quot;); System.out.println(arg[0]); } // fim do método main } // fim da classe MeuPrimeiroPrograma
  • 28. Ola Mundo: System.out Imprime uma string de caracteres System.out Objeto de saída padrão Imprime na janela de comando (i.e., prompt MS-DOS) Método System.out.println Apresenta uma linha de texto Argumento dentro de parênteses Esta linha é conhecida como instrução Instruções devem terminar com ; 12 System.out.println(&quot;Ola Mundo&quot;);
  • 29. Ola Mundo: System.out Imprime uma string de caracteres A aplicação usa a variável out da classe System, da API Java, para mostrar uma mensagem na tela. out é um objeto da classe java.io.PrintStream. Println é um método da Classe PrintStream que mostra um string na tela de console. Nenhum objeto precisou ser criado nesta chamada tanto a variável out quanto o método println são estáticos (static). 12 System.out.println(&quot;Ola Mundo&quot;);
  • 30. Caracteres especiais Backslash ( \ ) Indica um caractere especial
  • 31. Importando Pacotes Palavra-chave import Usada para declarar uso de uma classe Scanner do pacote java.util Pacotes (Packages) Conjunto de classes relacionadas é chamado de pacote Grupo de todos os pacotes é conhecido como biblioteca de classe java ou Java API (Java applications programming interface) Scanner está no pacote java.util Os nomes dos pacotes Java começam com Java (pacotes do núcleo da linguagem) ou Javax (extensões ao núcleo) import java.util.Scanner;
  • 32. Importando Pacotes Exemplos de pacotes Java: java.lang: Tipos e funcionalidades básicas da linguagem. Inclui, entre outras, as classes String, Math, Integer e Thread. É importada automaticamente em seus programas Java; java.awt: componentes gráficos originais da linguagem (Abstract Window Toolkit); javax.swing: pacote de extensão aos componentes gráficos com melhoramentos à biblioteca AWT java.applet: classes específicas para tratamento de applets; java.net: recursos de rede (sockets e URLs); java.io: classes para escrita e leitura em arquivos; java.util: classes para tarefas gerais, tais como vetores e string de tokens.
  • 33. Importando Pacotes Nome completo de uma classe: nome do pacote + nome da classe Ex.: java.lang.String -> nome completo da classe String Sentença import: Permite a utilização de membros de pacotes sem a necessidade de referenciá-los a partir do seu nome completo import <nome completo da classe> A importação pode ser de: Apenas um membro do pacote Ex.: import java.awt.Button; Todos os membros do pacote Ex.: import java.util.*; Se não forem usadas todas as classes desse pacote, o compilador vai descobrir quais foram as classes usadas e as importá-las em tempo de compilação O pacote java.lang é sempre importado import java.lang.*;
  • 34. Declarando variáveis Declaração de Variáveis Tipo identificador [ = valorInicial ] Tipo identificador1, identificador2, identificador3; Tipos de dados primitivos Inteiros: byte / short / int / long Reais: float / double Outros: char / boolean Nomes de variáveis Série de caracteres Unicode Não pode ser palavra chave Não pode ser nome de outra variável ou classe int numero1; // declara variável: primeiro numero a somar int numero2; // declara variável: segundo numero a somar int soma; // declara variável: soma de numero1 com numero2
  • 36. Tipos Primitivos Inteiros e seus Operadores Multiplicação, Divisão e Resto * / % Deslocamento de Bits << >> Menos unário - Inversão do padrão de bits, ou not bit-a-bit ~ Incremento e Decremento ++ -- Relacionais, comparam valores e produzem true ou false > < <= >= == != AND, OR e XOR & | ^ Adição e Subtração + - Comentários Operador
  • 37. Tipos primitivos Operadores de Incremento e Decremento
  • 38. Tipos primitivos Operadores Aritméticos de Atribuição Java fornece vários operadores que abreviam as expressões de atribuição ; A simplificação de sintaxe não é a única vantagem desses operadores. Eles aumentam a velocidade de acesso às variáveis em programas. Exemplo Exemplificação Atribui c += 7 c = c + 7 10 a c d -= 4 d = d - 4 1 a d e *= 5 e = e * 5 20 a e f /= 3 f = f / 3 2 a f g %=9 g = g % 9 3 a g Exemplos: int c = 3, d = 5, e = 4, f = 6, g = 12 Operador de atribuição += -= *= /= %=
  • 39. Tipos primitivos Ponto Flutuante e operações double (64 bits) float (32 bits) Multiplicação, Divisão e Resto * / % Menos unário - Incremento e Decremento ++ -- Relacionais, comparam valores e produzem true ou false > < <= >= == != Adição e Subtração + - Comentários Operador
  • 40. Tipos primitivos Booleanos true, false Igualdade e ‘não Igualdade’ == != Negação Lógica (NOT) ! AND e OR && || Ternário  HrIncial = (Turno == Manhã ? 7 : 13) //equivalente: if (Turno == Manhã) HrIncial = 7; else HrIncial = 13; ?: AND e OR, (executa obrigatoriamente os dois lados da expressão, ainda que isso não seja necessário para avaliar a expressão) & | Comentários Operador
  • 41. Tipos primitivos Caracteres e operadores Classe que tem uma seqüência de chars String Um único caractete Unicode (16 bits) char Indexação (zero...n) se X=“JAVA” então X[2]=‘V’ [ ] Concatenação + Comentários Operador
  • 42. Conversões Promoções de Tipo Conversões “inofensivas” (que não apresentam nenhum risco de erro) são aceitas implicitamente pelo compilador. Figure 6.5. Promotions allowed for primitive types. Tipo Promoções válidas double None float double long float ou double int long, float ou double char int, long, float ou double short int, long, float ou double (mas não char) byte short, int, long, float ou double (mas não char) boolean None (não podem ser considerados números em Java)
  • 43. Conversões Conversões Conversões com possível perda de dados devem ser feitas explicitamente (truncamento) float para int double para long long para int ... int i ; float f ; String s ; ... f = i; //promoção i = (int)f; //explicita ...
  • 44. Tipos Referência Tipos Referência Todos os demais tipos de Java! Definidos a partir de declarações de classes Quando uma variável em Java é declarada como sendo do tipo de uma classe, esta variável é considerada como sendo do tipo referência Declaração e inicialização: String str = “Entendendo Strings”; Banco brasil = new Banco (“Brasil”); Diferentemente das variáveis de tipos primitivos, que armazenam um valor, variáveis do tipo referência armazenam um apontador para um objeto em memória
  • 45. Strings Strings São seqüências de caracteres delimitados por “” Representadas por instâncias da classe String (pacotes java.lang) Declaração e Inicialização: String saudacao = “Bom dia!”; Variável saudacao conterá um apontador (referência) para um objeto do tipo String que estará em memória e que “armazenará” a informação “Bom dia!” Exemplo: String s1 = “string1”; String s2 = “string2”; String s3 = new String(“s1”); char data[] = { ‘a’, ‘b’, ‘c’ }; String cc = “ab”+ “cde”; As strings podem ser concatenadas através do operador +
  • 46. Strings Strings: Comparação Não use o operador == para comparar Strings O operador == testa referências quando utilizado com objetos, ou seja, testa se os objetos apontam para mesma posição de memória Use o método equals() da classe String Use o método equalsIgnoreCase() da classe String se não for importante a caixa (maiúsculas ou minúsculas) String nome = “Lisa”; if(!nome.equals(“Bart”)) If(“Lisa”.equals(nome))
  • 47. Classe Math Expressões Matemáticas Os métodos da classe Math permitem realizar cálculos comuns necessários em expressões matemáticas. Exemplos de chamadas de métodos da classe Math: Função raiz quadrada: double y = Math.sqrt(10.0); Função mínimo: double z = Math.min(x,10); Os métodos da classe Math são métodos estáticos não necessitam de objetos da classe para sua chamada você deve preceder as chamadas dos métodos com o nome da classe seguido de ponto
  • 48. Classe Math Chamada de Métodos Métodos podem ser chamados em declarações de variáveis ou como parâmetros de outros métodos float z = Math.sqrt(4.0*x); System.out.println(Math.sqrt(x+y*f)); A classe Math possui duas constantes importantes em programas matemáticos: Math.E = 2.7282818284590452354 // valor base de logaritmos naturais Math.PI = 3.14159265358979323846 // relação entre a circunferência e o diâmetro de círculos
  • 49. Classe Math Método abs( x ) ceil ( x ) cos( x ) exp( x ) floor( x ) log( x ) max( x, y ) min( x, y ) pow( x, y ) sin( x ) sqrt( x ) tan( x ) Exemplo pow (2.0, 7.0) é 128.0; pow (9.0,0.5) é 3.0 sin (0.0) é 0.0 sqrt (900.0) é 30.0; sqrt (9.0) é 3.0 tan (0.0) é 0.0 tangente trigonométrica de x (x em radianos) abs (23.7) é 23.7; abs (0.0) é 0.0; abs (-23.7) é 23.7 ceil (9.2) é 10.0; ceil (-9.8) é -9.0; cos (0.0) é 1.0 exp (1.0) é 2.718281828 floor (9.2) é 9.0; floor (-9.8) é -10.0 log (2.718282) é 1.0; log (7.389056) é 2.0 max ( 2.3, 12.7) é 12.7; max (-2.3;-12.7) é -2.3 min ( 2.3, 12.7) é 2.3; min (-2.3;-12.7) é -12.7 menor valor entre x e y (também em versões para float , int e long ) x elevado à potência y ( x y ) seno trigonométrico de x (x em radianos) raiz quadrada de x método esponencial e x arredonda o valor de x para o maior inteiro não maior que x logaritmo natural de x (base e) maior valor entre x e y (também em versões para float , int e long ) Descrição valor absoluto de x (tem versões para float , int e log ) arredonda o valor de x para o menor inteiro não menor que x co-seno trigonométrico de x (x em radianos)
  • 50. Leitura do Teclado Usando a classe java.util.Scanner (J2SE 5.0) Uma classe nova que permite converter um texto para tipos primitivos Texto pode ser obtido das mais diversas fontes, como: Strings InputStream Arquivos Permite separar o texto em tokens, que são seqüências de caracteres separados por delimitadores (default são espaço, tabs e mudanças de linha).
  • 51. Leitura do Teclado Para ler de forma confortável texto do canal de entrada padrão É preciso criar primeiro um Scanner sobre canal System.in que esta associado ao teclado Para cada um dos tipos primitivos há um método correspondente com a assinatura nextXxx() que retorne um valor desse tipo. Se a string não puder ser interpretada como sendo deste tipo, é lançado uma excepção do tipo InputMismatchException. Exemplos de algumas leituras de tokens: String aToken = sc.next() ; //Lê um token int num1 = sc.nextInt() ; //Lê um token inteiro double num2 = sc.nextDouble() ; //Lê um token real String linha = sc.nextLine() ; //Lê uma linha Scanner input = new Scanner(System.in);
  • 52. Impressão Formatada dados formatados Printf Primeiro argumento é a string formatada (texto fixo e especificadores de formato) Especificadores de formato começam com (%) e são seguidos por um caractere que representa o tipo de dado %s para uma string System.out.printf( &quot;%s\n%s\n&quot;, &quot; Bem vindo&quot;, &quot; a Java!&quot; ); %d para um decimal %f para um número ponto flutuante System.out.printf( &quot;A soma eh %d\n&quot;, soma ); // apresenta soma
  • 53. Exemplo 2: Soma // Programa de adição que apresenta a soma de dois números. import java.util.Scanner; // programa usa a classe Scanner da package java.util public class Soma { // método main inicia a execução da aplicação Java public static void main( String args[] ) { // cria objeto da classe Scanner para obter entradas do teclado Scanner input = new Scanner( System.in ); int numero1; // declara variável: primeiro numero a somar int numero2; // declara variável: segundo numero a somar int soma; // declara variável: soma de numero1 com numero2 System.out.print( &quot;Digite o primeiro inteiro: &quot; ); // prompt numero1 = input.nextInt(); // lê primeiro número via método nextInt da classe Scanner System.out.print( &quot;Digite o segundo inteiro: &quot; ); // prompt numero2 = input.nextInt(); // lê segundo numero soma = numero1 + numero2; // adiciona números System.out.printf( &quot;A soma eh %d\n&quot;, soma ); // apresenta soma } // fim do metodo main } // fim da classe Soma
  • 54. Prática Exercício 1 Faça um programa que calcula a média de três números reais digitados pelo usuário Utilize a classe Scanner e printf
  • 55. Caixa de Dialogo: Caixa de Mensagem Classe JOptionPane Oferece caixas de diálogo pré-empacotadas que permitem aos programas apresentarem janelas contendo mensagens para o usuário Faz parte do pacote javax.swing Pacote que contém várias classes que ajudam o programador a criar GUIs (Graphical User Interfaces) // Imprime linhas na caixa de dialogo import javax.swing.JOptionPane; // importa classe JOptionPane public class Dialog1 { public static void main( String args[] ) { // apresenta um dialogo com a mensagem JOptionPane.showMessageDialog( null, « Bem vindo\na\nJava&quot; ); } }
  • 56. Caixa de Dialogo: Caixa de Mensagem Classe JOptionPane Método JOptionPane.showMessageDialog Método estático: não requer a instanciação de um objeto Argumentos Primeiro usado para posicionamento na tela Null para colocar a caixa no centro da tela do frame default Segundo é a String a apresentar // Imprime linhas na caixa de dialogo import javax.swing.JOptionPane; // importa classe JOptionPane public class Dialog1 { public static void main( String args[] ) { // apresenta um dialogo com a mensagem JOptionPane.showMessageDialog( null, « Bem vindo\na\nJava&quot; ); } }
  • 57. Caixa de Dialogo: Caixa de Mensagem Classe JOptionPane Método JOptionPane.showMessageDialog Argumentos Primeiro usado para posicionamento na tela Null para colocar a caixa no centro da tela do frame default Segundo é a String a apresentar Terceiro é o titulo da janela Quarto é o tipo de mensagem // Imprime linhas na caixa de dialogo import javax.swing.JOptionPane; // importa classe JOptionPane public class Dialog2 { public static void main( String args[] ) { // apresenta um dialogo com a mensagem JOptionPane.showMessageDialog( null, &quot; Bem vindo\na\nJava &quot;  , &quot; Titulo &quot; , JOptionPane.INFORMATION_MESSAGE ); } }
  • 58. Caixa de Dialogo: Digitando texto Classe JOptionPane Método JOptionPane.showInputDialog import javax.swing.JOptionPane; public class BoasVindas { public static void main( String args[] ) { // solicita a digitação do nome String nome = JOptionPane.showInputDialog(&quot;Qual é seu nome?&quot; ); // cria a mensagem String mensagem = String.format(&quot;Bem vindo, %s, a Desenvolvimento orientado a objetos!&quot;, nome ); // Apresenta a mensagem de boas vindas JOptionPane.showMessageDialog( null, mensagem ); } }
  • 59. Caixa de Dialogo: Digitando texto Método showInputDialog() Variáveis informadas aos programas Java são sempre Strings que devem ser convertidas. Erros de entradas inesperadas (tipos incompatíveis com as conversões) devem ser tratados pelo usuário (veremos como em tratamento de exceções). import javax.swing.JOptionPane; public class EntradaInteiro { public static void main( String args[] ) { // solicita a digitação do nome String sInt = JOptionPane.showInputDialog(« Digite Inteiro?&quot; ); // cria a mensagem int numero = Integer.parseInt( sInt); } }
  • 60. Exercícios Modifique o programa de adição de maneira a utilizar entradas baseada em diálogos com JOptionPane em vez da entrada baseada em console Escreva uma instrução (ou comentário) para realizar cada uma das seguintes tarefas: Declarar que um programa calculará o produto de três inteiros Declarar as variáveis x,y e z e resultado como tipo int Declarar as variáveis xVal , yVal e zVal como do tipo String Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em xVal Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em yVal Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em zVal Converter xVal em um int e armazenar o resultado na variável x Converter yVal em um int e armazenar o resultado na variável y Converter zVal em um int e armazenar o resultado na variável z Computar o produto dos três inteiros contidos em x,y e z e atribuir o resultado à variável resultado Exibir um diálogo contendo a mensagem “O Produto é” seguindo do valor da variável resultado Retornar um valor a partir do programa para indicar que o mesmo foi finalizado com sucesso.

Notas do Editor