Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; #...
Transcript of Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; #...
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;
O método main e argumentos na linha de comando
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;
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 >>
Fluxo padrão de entrada e saída
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;
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 >>
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);
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 >>
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.
A classe JOptionPane(javax.swing)
→ 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 >>
Operadores diversos
Operadores diversos
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;
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;
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;
Operadores Lógicos (bit-a-bit):
& → and; | → or; ^ → xor; ~ → not;
Não produzem “curto-circuito”, ou seja, comparam a expressão inteira.
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.
Conversão de primitivos
→ 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
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 >>
Controle de execução - Seleção
→ 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 { … }
→ fluxo aninhado; if <expressão booleana> {
if <expressão booleana> { ... } else { ... }
}
→ switch case, até java 6, compara valores inteiros;
int opcao = 2; switch (valor inteiro) { case <valor>: … comandos … break; case <valor>: … comandos … break; default: … comandos … }
→ 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”;
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