Li Rui Pcj 2ed Cap03
-
Upload
gustavo-henrique -
Category
Documents
-
view
227 -
download
1
description
Transcript of Li Rui Pcj 2ed Cap03
-
Captulo 3Captulo 3
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
A Construo de A Construo de AplicativosAplicativos
-
Introduo Linguagem Java
Palavras reservadas
abstract default goto null synchronizedboolean do if package this
break double implements private throwbyte else import protected throwscase extends instanceof public transientcatch false int return true
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
catch false int return truechar final interface short tryclass finally long static voidconst float native super volatile
continue for new switch while
-
Introduo Linguagem Java
Identificadores
Finalidade: nomear classes, objetos, atributos, mtodos,
parmetros, variveis e constantes.
Distino entre maisculo e minsculo
Total != total != TOTAL
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Total != total != TOTAL
-
Introduo Linguagem Java
Identificadores
Convenes: regras para a padronizao
Classe:
o 1 caractere de cada palavra maisculo
o Ex.: Validador, GravadorDeArquivo.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Atributos, mtodos e parmetros:
o 1 caractere da primeira palavra minsculo
o 1 caractere de palavras subseqentes maisculo
o Ex.: codigoDeBarras, imprimirNomeCompleto.
-
Introduo Linguagem Java
Identificadores
Convenes: regras para a padronizao
Objetos e variveis:
o Apenas caracteres minsculos
o Palavras separadas por sublinhados
o Ex.: nome_completo, valor_original e desconto.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
o Ex.: nome_completo, valor_original e desconto.
Constantes:
o Apenas caracteres maisculos
o Palavras separadas por sublinhados
o Ex.: COFINS, VALOR_PI, RGB_AMARELO.
-
Introduo Linguagem Java
Separadores
Smbolo Nome . Ponto , Vrgula
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
, Vrgula ; Ponto-e-vrgula ( ) Parnteses {} Chaves [] Colchetes
-
Introduo Linguagem Java
Separadores
O ponto separa:
Classes de seus mtodos e atributos
System.out.println(Bem-vindo ao Java);
Objetos de seus mtodos e atributos
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Objetos de seus mtodos e atributos
Casas decimais em nmero de ponto flutuante
55.67
Pacotes de subpacotes e classes em instrues import
import javax.swing.JOptionPane;
-
Introduo Linguagem Java
Separadores
A vrgula separa:
Declarao de mltiplas variveis
double valor_principal, desconto, valor_total;
Parmetros na assinatura de mtodos
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Parmetros na assinatura de mtodos
public double somar(double v1, double v2)
Argumentos na invocao de mtodos
somar(546.38, 329.11);
-
Introduo Linguagem Java
Separadores
O ponto-e-vrgula usado para:
Separar as trs declaraes do lao for
for(int contador = 0; contador
-
Introduo Linguagem Java
Separadores
Os parnteses so usados para:
Delimitar os parmetros na assinatura de mtodos
public double somar(double v1, double v2)
Delimitar os argumentos na invocao de mtodos
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Delimitar os argumentos na invocao de mtodos
somar(546.38, 329.11);
Alterar a precedncia de operaes em expresses
int it = 2 * (3 + 5);
-
Introduo Linguagem Java
Separadores
As chaves delimitam:
O corpo de uma classe
O corpo de um mtodo
Instrues de estruturas de deciso
Instrues de estruturas de repetio
Um escopo local
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Um escopo local
Um conjunto de valores a ser atribudo a um vetor
Um conjunto de valores a ser atribudo a uma matriz
-
Introduo Linguagem Java
Separadores
Exemplo com chaves:
public class ContagemRegressiva {
public static void main(String[] args) {
int it = Integer.parseInt(args[0]);
while (it > 0) {
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
while (it > 0) {
System.out.println(it);
it--;
}//Fim do lao while
}//Fim do mtodo main
}//Fim da classe
-
Introduo Linguagem Java
Separadores
Os colchetes so utilizados para:
Declarao de vetores e matrizes
int[] vetor;
int vetor[];
Inicializao de vetores e matrizes
vetor = new int[2];
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
vetor = new int[2];
Atribuir valor a uma posio de um vetor ou matriz
vetor[0] = 3;
vetor[1] = 6;
Recuperar valor de uma posio de um vetor ou matriz
int soma = vetor[0] + vetor[1]
-
Introduo Linguagem Java
Comentrios
Observaes e anotaes
Ignorados pelo compilador
Tipos
De uma nica linha
System.out.println(st);//Imprime o contedo de st
De mltiplas linhas
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
De mltiplas linhas
/*
Esse mtodo realiza duas operaes:
- Calcula a mdia aritmtica simples dos valores.
- Arredonda e retorna o resultado.
*/
De documentao
/** */
-
Aplicativos
Conceito: programas executveis
Modos de interao com o usurio:
Textual
Grfico
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
-
Aplicativos
Cdigo 3.1 BemVindo.java.1 import javax.swing.JOptionPane;23 public class BemVindo4 {5 public static void main(String[] args) 6 {7 JoptionPane.showMessageDialog(null,"Bem-vindo ao Java!");8 System.exit(0);9 }10 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
10 }
-
Aplicativos
A declarao import
Corresponde declarao include co C/C++
Corresponde clusula uses do Pascal
Condicionada necessidade
Uma declarao import para cada componente ou pacote
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
import javax.swing.JOptionPane;
import javax.swing.*;
-
Aplicativos
Cdigo 3.2 BemVindo.java.1 public class BemVindo2 {3 public static void main(String[] args) 4 {5 JoptionPane.showMessageDialog(null,"Bem-vindo ao Java!");6 System.exit(0);//Importao implcita de java.lang
o Erro comum: esquecer a importao de recurso utilizado
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
6 System.exit(0);//Importao implcita de java.lang7 }8 }
-
Aplicativos
Aplicativo = componentes que se comunicam entre si
Classes
Interfaces
A declarao de uma classe
Encapsulamento: public (opcional)
Termo class (obrigatrio)
Identificador (obrigatrio)
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Identificador (obrigatrio)
Delimitao do corpo com chaves (obrigatrio)
public class BemVindo {
}
-
Aplicativos
Cdigo 3.2 BemVindo.java.1 import javax.swing.JOptionPane;2 3 public class bemvindo4 {5 public static void main(String[] args) 6 {
o Erro comum: nomes diferentes para o arquivo e classe pblica
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
6 {7 JoptionPane.showMessageDialog(null,"Bem-vindo ao Java!");8 System.exit(0);//Importao implcita de java.lang9 }10 }
-
Aplicativos
Composio das classes
Atributos
Mtodos
Composio de um aplicativo
Uma de suas classes deve conter o mtodo main( )
Pode conter um nmero adicional ilimitado de classes
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
O mtodo main( )
Torna a classe executvel
Contm as instrues que sero executadas
public static void main(String[] args) {
}
-
Aplicativos
Erro comum: executar classe que no possui o mtodo main
Resultado: uma mensagem de erro exibida
Exception in Thread 'main'
java.lang.NoSuchMethodError: main
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
-
Sada de Dados no Modo Textual
A classe System
Mtodos teis:
System.exit(0);
System.gc( );
Tipo DescrioLocalizao java.lang.System
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Localizao java.lang.SystemSuperclasse java.lang.ObjectDescrio Contm atributos e mtodos teis para a realizao de operaes de
sistema.
-
Sada de Dados no Modo Textual
A classe System
Atributos:
System.err
System.in
System.out
System.out.print( );//Imprime e permanece na linha
System.out.println( );//Imprime e avana uma linha
System.out.printf( );//Imprime e permanece na linha
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
System.out.printf( );//Imprime e permanece na linha
Atributo Descrioerr
in
out
Atributo esttico do tipo PrintStream que representa o fluxo padro de sada de errosAtributo esttico do tipo InputStream que representa o fluxo padro de entrada de dadosAtributo esttico do tipo PrintStream que representa o fluxo padro de sada de dados
-
Sada de Dados no Modo Textual
Sequncias de escape
Seqncia Descrio\\ Imprime uma nica barra invertida\ Imprime uma aspa dupla\n Avana o cursor para a prxima linha\r Retorna o cursor ao incio da linha atual
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
\b Retorna o cursor um espao na linha atual\t Avana o cursor na linha atual at a prxima parada de tabulao
-
Sada de Dados no Modo Textual
Cdigo 3.5 Saida.java.1 public class Saida {2 public static void main(String[] args) {3 System.out.println( );45 System.out.print("Um caractere:\t\t");6 System.out.print('A');7 System.out.print("\n");89 System.out.print("Um numero inteiro:\t");10 System.out.print(123);
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
10 System.out.print(123);11 System.out.print("\n");1213 System.out.println("Um numero decimal:\t" + 4.3);14 System.out.println("Um valor booleano:\t" + true);15 System.out.println("Uma barra invertida:\t\\");16 System.out.println("Um texto entre aspas:\t" + "\"Rui\"");1718 System.out.println( );19 }20 }
-
Sada de Dados no Modo Textual
Cdigo 3.5 Saida.java.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
-
Sada de Dados no Modo Textual
Valores literais
Tipo de dado Representao ExemploNmeros inteiros na base decimal v 11Nmeros inteiros na base hexadecimal 0xv 0xBNmeros inteiros na base octal 0v 13Nmeros inteiros longos vL 11L
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Nmeros inteiros longos vL 11LNmeros reais de preciso simples v.vf 24.2fNmeros reais de preciso dupla v.v 55.6Valores lgicos v trueCaracteres v HTexto v Ana Carolina
-
Sada de Dados no Modo TextualCdigo 3.6 Literais.java.1 public class Literais {2 public static void main(String[] args) {3 System.out.println();4 System.out.println("Inteiro - decimal:\t\t" + 11);5 System.out.println("Inteiro - hexadecimal:\t\t" + 0xB);6 System.out.println("Inteiro - octal:\t\t" + 013);7 System.out.println("Inteiro - longo:\t\t" + 11L);8 System.out.println("Real - preciso simples:\t" + 24.2f);9 System.out.println("Real - preciso dupla:\t\t" + 24.2);10 System.out.println("Tipo lgico:\t\t\t" + true);11 System.out.println("Caractere:\t\t\t" + 'H');
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
11 System.out.println("Caractere:\t\t\t" + 'H');12 System.out.println("Texto:\t\t\t\t" + "Ana");13 System.out.println();14 }15 }
-
Sada de Dados no Modo TextualCdigo 3.6 Literais.java.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
-
Sada de Dados no Modo Textual
Sada formatada
Recurso adicionado ao JSE 5.0
Implica no uso de especificadores de formato
Cada especificador marca uma posio
System.out.printf(%s um %s,Plato, Filsofo);
Sada: Plato um Filsofo
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Sada: Plato um Filsofo
Especificador Tipo de dado%s Texto
%c Caractere%d Nmero inteiro%f Nmero de ponto flutuante%b Valor booleano
-
Sada de Dados no Modo TextualCdigo 3.7 SaidaFormatada.java.1 public class SaidaFormatada {2 public static void main(String[] args) {3 System.out.println( );45 System.out.printf("Um caractere: %c",'A');6 System.out.println( );7 System.out.printf("Um texto: %s","Java em todos os lugares");8 System.out.println( );9 System.out.printf("Um nmero inteiro: %d",123);10 System.out.println( );11 System.out.printf("Um nmero decimal: %f",4.55);
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
11 System.out.printf("Um nmero decimal: %f",4.55);12 System.out.println( );13 System.out.printf("Um valor booleano: %b",true);14 System.out.println( );1516 System.out.println( );17 }18 }
-
Sada de Dados no Modo TextualCdigo 3.8 SaidaFormatadaEscape.java.1 public class SaidaFormatadaEscape {2 public static void main(String[] args) {3 System.out.println( );45 System.out.printf("Dois nmeros:\t\t%d e %d \n",2, 22);6 System.out.printf("O nmero %d equivale letra %c \n",65, 'A');78 System.out.println( );9 }10 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
-
Entrada de Dados no Modo Textual
Utilizando a classe java.lang.System
byte[] bt = new byte[50];
System.in.read(bt);
String nome = new String(bt).trim();
Utilizando a classe java.util.Scanner (JSE 5.0)
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Scanner scan = new Scanner(System.in);
String nome = scan.nextLine();
-
Entrada de Dados no Modo TextualCdigo 3.9 Entrada.java.1 import java.io.IOException;23 public class Entrada {4 public static void main(String[] args) throws IOException {5 System.out.print("\nInforme seu nome: ");6 byte[] bt = new byte[50];7 System.in.read(bt);8 String nome = new String(bt).trim();9 System.out.printf("%s: seja bem-vindo!\n\n", nome);10 }11 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
11 }
-
Entrada de Dados no Modo TextualCdigo 3.10 EntradaScanner.java.1 import java.util.Scanner;23 public class EntradaScanner {4 public static void main(String[] args) {5 Scanner scan = new Scanner(System.in);67 System.out.print("\nInforme seu nome:\t");8 String nome = scan.nextLine();910 System.out.print("Informe seu e-mail:\t");11 String email = scan.nextLine();
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
11 String email = scan.nextLine();1213 System.out.println("\nDados recebidos:");14 System.out.printf("Nome:\t %s \nE-mail:\t %s\n\n",nome,email);15 }16 }
-
Entrada e Sada de Dados com Dilogos Grficos
Classe: javax.swing.JOptionPane
Entrada de dados
String nm = JOptionPane.showInputDialog(null,"Informe seu nome");
Sada de dados
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Sada de dados
JOptionPane.showMessageDialog(null,"Bem-vindo!");
-
Entrada e Sada de Dados com Dilogos GrficosCdigo 3.11 DialogoGrafico.java.1 import javax.swing.JOptionPane;23 public class DialogoGrafico {4 public static void main(String[] args) {5 String nm = JOptionPane.showInputDialog(null,"Informe seu nome");6 JOptionPane.showMessageDialog(null,nm + ": seja bem-vindo!");7 System.exit(0);8 }9 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
-
Exerccio 1
Crie um novo aplicativo, chamado Exercicio0301, que apresente a
tabuada do nmero 9 utilizando uma disposio idntica da figura
abaixo para organizar todos os dados. Note que estes dados esto
divididos em dois grandes blocos e que algumas colunas de
nmeros esto alinhadas direita.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
-
Exerccio 2
Crie um novo aplicativo, chamado Exercicio0302, que solicite o
nome e o e-mail ao seu usurio e que, ao final, apresente estes dois
dados tal como se fosse uma confirmao de cadastro. As sadas
produzidas por este aplicativo devem ser idnticas quelas
apresentadas na figura abaixo. Alm disso, voc deve implementar
este aplicativo sem utilizar a classe java.util.Scanner. Ao invs
desta classe, o aplicativo deve captar a entrada de dados atravs
do outro procedimento apresentado neste captulo.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
-
Exerccio 3
Crie um novo aplicativo, chamado Exercicio0303, que solicite o
nome, a nacionalidade e o telefone de seu usurio e que, ao final,
apresente estes trs dados tal como se fosse uma confirmao de
cadastro. As sadas produzidas por este aplicativo devem ser
idnticas quelas apresentadas na figura abaixo. Alm disso, voc
deve implementar este aplicativo utilizando a classe
java.util.Scanner para captar as entradas de dados.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
-
Exerccio 4
Crie um novo aplicativo, chamado Exercicio0304, que solicite o
nome dos dois jogos prediletos de seu usurio e que, ao final,
apresente estes dois dados atravs de uma nica mensagem
grfica. Este aplicativo tambm deve captar os dois dados atravs
de dilogos grficos, como encontra-se ilustrado nas figuras abaixo.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
-
Contato
Com o autor:
Rui Rossi dos Santos
E-mail: [email protected]
Web Site: http://www.ruirossi.pro.br
Com a editora:
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Com a editora:
Editora NovaTerra
E-mail Geral: [email protected]
E-mail Comercial: [email protected]
Web Site: http://www.editoranovaterra.com.br