Capítulo 3 - ruirossi.pro.br · Introdução àLinguagem Java Separadores O ponto separa: Classes de seus métodos e atributos System.out.println(“Bem-vindo ao Java”); Objetos
Post on 03-Jun-2020
1 Views
Preview:
Transcript
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
CapCapíítulo 3tulo 3A ConstruA Construçção de ão de
AplicativosAplicativos
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Palavras reservadas
abstract default goto null synchronized
boolean do if package this
break double implements private throw
byte else import protected throws
case extends instanceof public transient
catch false int return true
char final interface short try
class finally long static void
const float native super volatile
continue for new switch while
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Identificadores
� Finalidade: nomear classes, objetos, atributos, métodos,
parâmetros, variáveis e constantes.
� Distinção entre maiúsculo e minúsculo
Total != total != TOTAL
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Identificadores
� Convenções: regras para a padronização
�Classe:
o 1º caractere de cada palavra maiúsculo
o Ex.: Validador, GravadorDeArquivo.
�Atributos, métodos e parâmetros:
o 1º caractere da primeira palavra minúsculo
o 1º caractere de palavras subseqüentes maiúsculo
o Ex.: codigoDeBarras, imprimirNomeCompleto.
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Identificadores
� Convenções: regras para a padronização
�Objetos e variáveis:
o Apenas caracteres minúsculos
o Palavras separadas por sublinhados
o Ex.: nome_completo, valor_original e desconto.
�Constantes:
o Apenas caracteres maiúsculos
o Palavras separadas por sublinhados
o Ex.: COFINS, VALOR_PI, RGB_AMARELO.
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Separadores
Símbolo Nome
. Ponto
, Vírgula
; Ponto-e-vírgula
( ) Parênteses
{} Chaves
[] Colchetes
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Separadores
� O ponto separa:
�Classes de seus métodos e atributos
System.out.println(“Bem-vindo ao Java”);
�Objetos de seus métodos e atributos
�Casas decimais em número de ponto flutuante
55.67
�Pacotes de subpacotes e classes em instruções import
import javax.swing.JOptionPane;
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Separadores
� A vírgula separa:
�Declaração de múltiplas variáveis
double valor_principal, desconto, valor_total;
�Parâmetros na assinatura de métodos
public double somar(double v1, double v2)
�Argumentos na invocação de métodos
somar(546.38, 329.11);
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Separadores
� O ponto-e-vírgula é usado para:
�Separar as três declarações do laço for
for(int contador = 0; contador <= 10; contador++)
� Indicar o final de uma instrução
System.out.println(contador);
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Separadores
� Os parênteses são usados para:
�Delimitar os parâmetros na assinatura de métodos
public double somar(double v1, double v2)
�Delimitar os argumentos na invocação de métodos
somar(546.38, 329.11);
�Alterar a precedência de operações em expressões
int it = 2 * (3 + 5);
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Separadores
� As chaves delimitam:
�O corpo de uma classe
�O corpo de um método
� Instruções de estruturas de decisão
� Instruções de estruturas de repetição
�Um escopo local
�Um conjunto de valores a ser atribuído a um vetor
�Um conjunto de valores a ser atribuído a uma matriz
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Separadores
� Exemplo com chaves:
public class ContagemRegressiva {
public static void main(String[] args) {
int it = Integer.parseInt(args[0]);
while (it > 0) {
System.out.println(it);
it--;
}//Fim do laço while
}//Fim do método main
}//Fim da classe
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Separadores
� Os colchetes são utilizados para:
�Declaração de vetores e matrizes
int[] vetor;
int vetor[];
� Inicialização de vetores e matrizes
vetor = new int[2];
�Atribuir valor a uma posição de um vetor ou matriz
vetor[0] = 3;
vetor[1] = 6;
�Recuperar valor de uma posição de um vetor ou matriz
int soma = vetor[0] + vetor[1]
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Introdução à Linguagem Java
� Comentários
� Observações e anotações
� Ignorados pelo compilador
� Tipos
�De uma única linha
System.out.println(st);//Imprime o conteúdo de st
�De múltiplas linhas
/*
Esse método realiza duas operações:
- Calcula a média aritmética simples dos valores.
- Arredonda e retorna o resultado.
*/
�De documentação
/** */
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Aplicativos
� Conceito: programas executáveis
� Modos de interação com o usuário:
� Textual
� Gráfico
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
AplicativosCódigo 3.1 – BemVindo.java.
1 import javax.swing.JOptionPane;
2
3 public class BemVindo
4 {
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 Programação de Computadores em Java Editora NovaTerra
Aplicativos
� A declaração import
� Corresponde à declaração include co C/C++
� Corresponde à cláusula uses do Pascal
� Condicionada à necessidade
� Uma declaração import para cada componente ou pacote
import javax.swing.JOptionPane;
import javax.swing.*;
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Aplicativos
Código 3.2 – BemVindo.java.
1 public class BemVindo
2 {
3 public static void main(String[] args)
4 {
5 JoptionPane.showMessageDialog(null,"Bem-vindo ao Java!");
6 System.exit(0);//Importação implícita de java.lang
7 }
8 }
o Erro comum: esquecer a importação de recurso utilizado
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Aplicativos
� Aplicativo = componentes que se comunicam entre si
� Classes
� Interfaces
� A declaração de uma classe
� Encapsulamento: public (opcional)
� Termo class (obrigatório)
� Identificador (obrigatório)
� Delimitação do corpo com chaves (obrigatório)
public class BemVindo {
}
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Aplicativos
Código 3.2 – BemVindo.java.
1 import javax.swing.JOptionPane;
2
3 public class bemvindo
4 {
5 public static void main(String[] args)
6 {
7 JoptionPane.showMessageDialog(null,"Bem-vindo ao Java!");
8 System.exit(0);//Importação implícita de java.lang
9 }
10 }
o Erro comum: nomes diferentes para o arquivo e classe pública
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Aplicativos
� Composição das classes
� Atributos
� Métodos
� Composição de um aplicativo
� Uma de suas classes deve conter o método main( )
� Pode conter um número adicional ilimitado de classes
� O método main( )
� Torna a classe executável
� Contém as instruções que serão executadas
public static void main(String[] args) {
}
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Aplicativos
� Erro comum: executar classe que não possui o método main
� Resultado: uma mensagem de erro é exibida
Exception in Thread 'main'
java.lang.NoSuchMethodError: main
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Entrada de Dados Através de Argumentos
� Na execução do aplicativo
� Adicionam-se os argumentos separados por espaço
� Deliminar com aspas os argumentos que contém espaço
java Argumento Rui
java Argumento “Rui Rossi”
java JogosPreferidos Xadrez Gamão “Jogo da Velha”
� Na recuperação:
� Os argumentos são gravados no vetor args
� Cada argumento ocupa uma posição
� Primeiro argumento = args[0]
� Segundo argumento = args[1]
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Entrada de Dados Através de ArgumentosCódigo 3.3 – Argumento.java.
1 public class Argumento {
2 public static void main(String[] args) {
3 System.out.print(args[0]);
4 System.out.println(": seja bem-vindo!");
5 System.out.println();
6 }
7 }
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Entrada de Dados Através de Argumentos
� Erro comum: esquecer de informar um argumento que é esperado
� Resultado: uma mensagem de erro é exibida
Exception in Thread 'main'
java.lang.ArrayIndexOutOfBoundsException: 0
at Argumento.main(Argumento.java:3)
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Entrada de Dados Através de ArgumentosCódigo 3.4 – JogosPreferidos.java.
1 public class JogosPreferidos {
2 public static void main(String[] args) {
3 System.out.println();
4 System.out.println("Meus jogos preferidos:");
5 System.out.println("1. " + args[0]);
6 System.out.println("2. " + args[1]);
7 System.out.println("3. " + args[2]);
8 System.out.println();
9 }
10 }
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída de Dados no Modo Textual
� A classe System
� Métodos úteis:
System.exit(0);
System.gc( );
Tipo Descrição
Localização java.lang.System
Superclasse java.lang.Object
Descrição Contém atributos e métodos úteis para a realização de operações de
sistema.
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída 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 avança uma linha
System.out.printf( );//Imprime e permanece na linha
Atributo Descrição
err
in
out
Atributo estático do tipo PrintStream que representa o fluxo padrão de saída
de erros
Atributo estático do tipo InputStream que representa o fluxo padrão de entrada
de dados
Atributo estático do tipo PrintStream que representa o fluxo padrão de saída
de dados
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída de Dados no Modo Textual
� Sequências de escape
Seqüência Descrição
\\ Imprime uma única barra invertida
\” Imprime uma aspa dupla
\n Avança o cursor para a próxima linha
\r Retorna o cursor ao início da linha atual
\b Retorna o cursor um espaço na linha atual
\t Avança o cursor na linha atual até a próxima parada de tabulação
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída de Dados no Modo TextualCódigo 3.5 – Saida.java.
1 public class Saida {
2 public static void main(String[] args) {
3 System.out.println( );
4
5 System.out.print("Um caractere:\t\t");
6 System.out.print('A');
7 System.out.print("\n");
8
9 System.out.print("Um numero inteiro:\t");
10 System.out.print(123);
11 System.out.print("\n");
12
13 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\"");
17
18 System.out.println( );
19 }
20 }
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída de Dados no Modo TextualCódigo 3.5 – Saida.java.
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída de Dados no Modo Textual
� Valores literais
Tipo de dado Representação Exemplo
Números inteiros na base decimal v 11
Números inteiros na base hexadecimal 0xv 0xB
Números inteiros na base octal 0v 13
Números inteiros longos vL 11L
Números reais de precisão simples v.vf 24.2f
Números reais de precisão dupla v.v 55.6
Valores lógicos v true
Caracteres ‘v’ ‘H’
Texto “v” “Ana Carolina”
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída de Dados no Modo TextualCódigo 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 - precisão simples:\t" + 24.2f);
9 System.out.println("Real - precisão dupla:\t\t" + 24.2);
10 System.out.println("Tipo lógico:\t\t\t" + true);
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 }
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída de Dados no Modo TextualCódigo 3.6 – Literais.java.
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída de Dados no Modo Textual
� Saída formatada
� Recurso adicionado ao JSE 5.0
� Implica no uso de especificadores de formato
� Cada especificador marca uma posição
System.out.printf(“%s é um %s”,”Platão”, “Filósofo”);
Saída: “Platão é um Filósofo”
Especificador Tipo de dado
%s Texto
%c Caractere
%d Número inteiro
%f Número de ponto flutuante
%b Valor booleano
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída de Dados no Modo TextualCódigo 3.7 – SaidaFormatada.java.
1 public class SaidaFormatada {
2 public static void main(String[] args) {
3 System.out.println( );
4
5 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 número inteiro: %d",123);
10 System.out.println( );
11 System.out.printf("Um número decimal: %f",4.55);
12 System.out.println( );
13 System.out.printf("Um valor booleano: %b",true);
14 System.out.println( );
15
16 System.out.println( );
17 }
18 }
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Saída de Dados no Modo TextualCódigo 3.8 – SaidaFormatadaEscape.java.
1 public class SaidaFormatadaEscape {
2 public static void main(String[] args) {
3 System.out.println( );
4
5 System.out.printf("Dois números:\t\t%d e %d \n",2, 22);
6 System.out.printf("O número %d equivale à letra %c \n",65, 'A');
7
8 System.out.println( );
9 }
10 }
Rui Rossi dos Santos Programação 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)
Scanner scan = new Scanner(System.in);
String nome = scan.nextLine();
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Entrada de Dados no Modo TextualCódigo 3.9 – Entrada.java.
1 import java.io.IOException;
2
3 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 Programação de Computadores em Java Editora NovaTerra
Entrada de Dados no Modo TextualCódigo 3.10 – EntradaScanner.java.
1 import java.util.Scanner;
2
3 public class EntradaScanner {
4 public static void main(String[] args) {
5 Scanner scan = new Scanner(System.in);
6
7 System.out.print("\nInforme seu nome:\t");
8 String nome = scan.nextLine();
9
10 System.out.print("Informe seu e-mail:\t");
11 String email = scan.nextLine();
12
13 System.out.println("\nDados recebidos:");
14 System.out.printf("Nome:\t %s \nE-mail:\t %s\n\n",nome,email);
15 }
16 }
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Entrada e Saída de Dados com Diálogos Gráficos
� Classe: javax.swing.JOptionPane
� Entrada de dados
String nm = JOptionPane.showInputDialog(null,"Informe seu nome");
� Saída de dados
JOptionPane.showMessageDialog(null,"Bem-vindo!");
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Entrada e Saída de Dados com Diálogos GráficosCódigo 3.11 – DialogoGrafico.java.1 import javax.swing.JOptionPane;2
3 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 Programação de Computadores em Java Editora NovaTerra
Exercício 1
� Crie um novo aplicativo, chamado Exercicio0301, que capte o nome
de cinco animais através de argumentos inseridos na própria janela
de comando e que liste todos os dados informados do modo como
está representado na figura abaixo.
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 2
� Crie um novo aplicativo, chamado Exercicio0302, que apresente a
tabuada do número 9 utilizando uma disposição idêntica à da figura
abaixo para organizar todos os dados. Note que estes dados estão
divididos em dois grandes blocos e que algumas colunas de
números estão alinhadas à direita.
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 3
� Crie um novo aplicativo, chamado Exercicio0303, que solicite o
nome e o e-mail ao seu usuário e que, ao final, apresente estes dois
dados tal como se fosse uma confirmação de cadastro. As saídas
produzidas por este aplicativo devem ser idênticas àquelas
apresentadas na figura abaixo. Além disso, você deve implementar
este aplicativo sem utilizar a classe java.util.Scanner. Ao invés
desta classe, o aplicativo deve captar a entrada de dados através
do outro procedimento apresentado neste capítulo.
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 4
� Crie um novo aplicativo, chamado Exercicio0304, que solicite o
nome, a nacionalidade e o telefone de seu usuário e que, ao final,
apresente estes três dados tal como se fosse uma confirmação de
cadastro. As saídas produzidas por este aplicativo devem ser
idênticas àquelas apresentadas na figura abaixo. Além disso, você
deve implementar este aplicativo utilizando a classe
java.util.Scanner para captar as entradas de dados.
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Exercício 5
� Crie um novo aplicativo, chamado Exercicio0305, que solicite o
nome dos dois jogos prediletos de seu usuário e que, ao final,
apresente estes dois dados através de uma única mensagem
gráfica. Este aplicativo também deve captar os dois dados através
de diálogos gráficos, como encontra-se ilustrado nas figuras abaixo.
top related