Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; #...

28
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane; # Operadores diversos; # Conversão de primitivos; # Controle de execução – Seleção;

Transcript of Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; #...

Page 1: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Aulas 2 e 3 – Java – Prof. Marcelo Heitor

# O método main e argumentos na linha de comando;# Fluxo padrão de entrada e saída;# A classe JOptionPane;# Operadores diversos;# Conversão de primitivos;# Controle de execução – Seleção;

Page 2: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

O método main e argumentos na linha de comando

Page 3: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

public static void main(String[] args) { … }

→ Principal método na execução de um programa;→ Porta de entrada para a execução de um programa;→ Deve haver um método main por programa;→ Ausência do método main lança erro em tempo de execução;

# public: torna-o visível por todo o programa;# static: jvm não precisa de uma instância explícita para usá-lo;# void: garante que não existe valor de retorno para o método;# main: nome do método;# String[]: textos que podem ser passados na linha de comando;# args: apenas o nome do argumento. Pode ser outro nome;

Observação:1 – O conjunto de chaves indica o escopo do método;

Page 4: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Os argumentos de linha de comando são “Strings” que servem para passar comandos para a entrada inicial do programa;

Exemplo: java MeuPrograma “argumento 0” “argumento 1” …

<< exemplo – aula2 – Argumentos.java >>

Page 5: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Fluxo padrão de entrada e saída

Page 6: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Entrada e saída normalmente são geradas com sequências de bytes em um determinada direção;

Na entrada os bytes fluem de dispositivos de entrada em direção ao programa principal, por exemplo: teclado e mouse;

Na saída o fluxo inicia no programa principal em direção aos dispositivos de saída, por exemplo: Tela do computador;

Page 7: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Quando um programa java é iniciado são criados 3 fluxos padrão:

System.in: fluxo de entrada padrão lê os dados geralmente do teclado;System.out: fluxo de saída padrão gera a saída de caracteres geralmente numa janela;System.err: fluxo de erro padrão é o desvio causado quando erros ocorrem;

<< exemplo – aula2 – FluxoPadrao.java >>

Page 8: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Métodos para auxiliar na formatação da saida padrão: print: imprime na tela e continua na mesma linha; println: mesmo que print + quebra de linha; printf: similar ao “C” e incluido desde a versão 1.5 permite formatar vários tipos de dados;

print(argumento) e println(argumento) possuem uma variedade de argumentos. Por exemplo: Object, String, boolean, char, char[], double, float, int, long.

public void print(argumento);public void println(argumento);

Page 9: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

public PrintStream printf(String format, Object... args); public PrintStream printf(Locale l, String format, Object... args);

Esse método permite, como já foi dito, uma grande variedade de formatações com precisão. Entretanto, por questões de tempo, foram escolhidos 3 tipos de formatação para exemplificar sua aplicação prática.

Formatação de inteiros, string de caracteres, valores com zero a esquerda;

% = precede cada especificador de formato e é precedido por um caracter de conversão para um tipo de dado específico;

<< exemplo – aula2 – FormataSaida.java >>

Page 10: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Para um estudo mais detalhado sobre o método printf e seus formatos de representação utilize a documentação oficial no site da oracle.

Page 11: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

A classe JOptionPane(javax.swing)

Page 12: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

→ JOptionPane pertence ao pacote (javax.swing);→ componente GUI (Graphical User Interface);→ permite tanto entrada como saida de dados;→ pertence a parte de componentes visuais da java-API;→ javax.swing se comportam da mesma forma independente do sistema operacional;→ necessita ser importada para a classe antes de ser usada; (import javax.swing.JOptionPane);

<< exemplo – aula2 – DialogoGUI.java >>

Page 13: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Operadores diversos

Page 14: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Operadores diversos

Page 15: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Operadores Matemáticos:

+ → soma;- → subtração;* → multiplicação;/ → divisão;% → módulo (resto);

Atribuição com Operação:

+= → x = x + 1;-= → x = x - 1;*= → x = x * 1;/= → x = x / 1;%= → x = x % 1;

= → atribuição simples;

Operadores de Comparação: == → igualdade; <= → menor ou igual; >= → maior ou igual; != → diferente; < → menor; > → maior;

O resultado é sempre um valor booleano;

Page 16: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Operadores de Incremento e Decremento:

Observe o exemplo: int x = 1; int y = 2;

int p = ++x; // x e p são iguais a 2;

int z = y++; // y contém 2, z contém 2;

Operador de Concatenação:

+ → Quando um dos valores for uma String, haverá a concatenação.

Ex: String s = 1 + 2 + “=” + 3;

O valor de s será: 3=3 pois ocorre a partir da direita;

Page 17: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Operadores Lógicos:

&& → E (AND); || → OU (OR); ! → Negação (NOT);

Produzem valor booleano; Também conhecidos como operadores de curto-circuito; ex: (1 > 3 && 5 > 1) → 5>1 não será comparado;

Outro exemplo: (1 < 3 || 5 > 1) → 5>1 não será comparado;

Tabela && (and)

true && true == true;true && false == false;false && true == false;false && false == false;

Tabela || (or)

true || true == true;true || false == true;false || true == true;false || false == false;

Tabela ! (not)Nega a expressão:

!(a != b) → a == b;

Page 18: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Operadores Lógicos (bit-a-bit):

& → and; | → or; ^ → xor; ~ → not;

Não produzem “curto-circuito”, ou seja, comparam a expressão inteira.

Page 19: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Operadores de Deslocamento:

<< → desloca bit a esquerda; >> → desloca bit a direita; >>> → desloca a direita sem considerar o sinal (adiciona zeros);

Usados em tipos inteiros e longos;Tipos short e byte são implicitamente convertidos antes de serem deslocados;

Esses operadores foram removidos da prova de certificação a partir da versão 5.

Como exemplo prático, podem ser usados para geração de algorítmos de criptografia.

Page 20: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Conversão de primitivos

Page 21: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

→ Conversão implícita ocorre quando não há risco de perda valores;→ Conversão explícita (cast) ocorre quando o programador assume o risco de possível perda de valor;

byte

short

int

long

float

double

char

Page 22: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Exemplo de (cast):

Em byte cabem até 127;Em short cabem até 32767;

short s = 127; byte b = s; //OK

Aplicando a coerção, o programador assume a possibilidade de perda de precisão:

byte b = (byte) s;

<< exemplo – aula2 – ConversaoPrimitivos.java >>

Page 23: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Controle de execução - Seleção

Page 24: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

→ Controle de execução, popularmente conhecido como estrutura de decisão;→ Permite a tomada de decisão em um programa;

→ fluxo simples; if <expressão booleana> { … }

→ fluxo com condição alternativa; if <expressão booleana> { ... } else { … }

Page 25: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

→ fluxo aninhado; if <expressão booleana> {

if <expressão booleana> { ... } else { ... }

}

Page 26: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

→ switch case, até java 6, compara valores inteiros;

int opcao = 2; switch (valor inteiro) { case <valor>: … comandos … break; case <valor>: … comandos … break; default: … comandos … }

Page 27: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

→ operador ternário, também conhecido como if-else ternário;

var x = <expressão> ? caso true : caso false; String msg = (1 > 3) ? “1 maior que 3” : “1 menor que 3”;

Page 28: Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;

Exercícios:

1 – construa um programa que receba o nome e a idade de uma pessoa. Em seguida apresente na tela o nome, a idade e uma mensagem se a pessoa é maior ou menor de idade.

2 – construa um programa que receba o nome de um aluno, a disciplina que cursa e 2 notas. Por fim, apresente na tela a seguinte saida:

Bemvindo(a): <<nome do aluno>>Disciplina: <<nome da disciplina>>Nota 1: <<nota 1>>;Nota 2: <<nota 2>>;Média: <<media do aluno>>;Status: <<Aprovado ou Reprovado>>;

Obs: Média para aprovação 5.0