Aula 2
Aula 2
Aula 2
• Portável (Multiplataforma)
• Programa J ava pode rodar em qualquer plataforma (HW e SO) sem
precisar adaptar o c ódigo;
• Ex: Windows, L inux, Mac OS, etc;
• Comunicação em Rede
• Extensa biblioteca para lidar c om protocolos TCP/IP (HTTP, FTP, etc);
• Acesso a objetos pela Internet é similar ao acesso de arquivos l ocais;
1
28/04/15
• Segura
• Vários mecanismos para c ontrolar a segurança (criptografia dos
dados);
• Desenvolvida para rodar em ambientes distribuídos (rede);
• Poucos b ugs encontrados e todos muitos técnicos;
• Robusta
• Mecanismo eficiente para tratamento de erros e c oleta de l ixo;
• Minimiza b ugs, aumenta produtividade;
2
28/04/15
Plataforma Java
• Plataforma: ambiente de S W ou HW no qual um programa roda
• Ex: Microsoft Windows, Unix, Macintosh;
3
28/04/15
4
28/04/15
Bytecode Java
Windows Linux
10
5
28/04/15
11
12
6
28/04/15
13
14
7
28/04/15
• Windows:
• Caminho de instalação: C:\Arquivos de Programas\Java\jdk.1.6.0_27
15
16
8
28/04/15
Escrever o programa
1. Escrever código do programa em um editor de texto;
• Ex: Bloco de Notas, Notepad++, Vim, etc.
17
18
9
28/04/15
19
Eclipse
• No curso, usaremos a IDE Eclipse:
20
10
28/04/15
21
3. Nomear o Projeto...
4. F inalizar
22
11
28/04/15
Criando a Aplicação
4. F inalizar
23
Salvando...
Salvar
24
12
28/04/15
25
int quantEstoque;
float saldo;
26
13
28/04/15
27
• Tipos derivados
• Criado pelo programador ou provido pela biblioteca de J ava;
• Ex: Classes (estudaremos mais adiante no c urso)
28
14
28/04/15
29
int num1;
• Exs: double dolar;
char inicialNome;
boolean foiComprado;
30
15
28/04/15
int num1;
• Exs: double dolar;
char inicialNome;
boolean foiComprado;
31
32
16
28/04/15
33
34
17
28/04/15
* não usadas;
35
36
18
28/04/15
37
ØAridade
• Número de operandos sobre os quais o operador atua
ü Operadores unários – requerem um operando
ü Operadores binários – requerem dois operandos
ü Operador ternário – requer três operandos
• Ex: operador + tem aridade 2 (i.e., um operador binário)
38
19
28/04/15
ØAssociatividade
• Qual é o resultado de “ 8/2/2”? Por quê?
• Operador “/” tem associatividade à esquerda;
• À e squerda: operador mais a esquerda é aplicado 1 º
• À direita: operador mais a direita é aplicado 1 º
39
40
20
28/04/15
41
42
21
28/04/15
* multiplicação x * y
/ divisão x / y
% resto da divisão inteira x % y
++ incremento unitário ++x ou x++
-- decremento unitário --x ou x--
43
Operadores Aritméticos
ØOperador divisão (/)
• Serve para ambas as divisões: inteira e ponto flutuante;
• Tipos dos operandos é que definem o tipo de divisão;
• Ou seja:
• Inteiro / I nteiro => Inteiro
• Ponto flutuante / Ponto flutuante => Ponto flutuante
• Ponto flutuante / I nteiro => Ponto flutuante
44
22
28/04/15
Operadores Aritméticos
• Operadores de Incremento (++) e Decremento (-‐-‐)
• Adicionam ou subtraem 1 ao valor da variável;
int n = 12, t = 2;
n++; // mudou n para 13
t--; // mudou t para 1
• Podem ser:
• Pré-‐fixos: ++x ou --x;
• Pós-‐fixos: x++ ou x--;
• Qual é a diferença?
45
Operadores Aritméticos
• Operadores de Incremento e Decremento
• A diferença é quando são usados em expressões:
int m = 7;
int n = 7;
int a = 2 * ++n; // a = 16 e m é 8
int b = 2 * n++; // b = 14 e n é 8
46
23
28/04/15
Operadores Relacionais
• Produzem sempre valores booleanos
Operador Significado (1 ou 0)
Exemplo Resultado
== Igual a x == y true se x é igual a y ;
false caso contrário
!= Diferente de x != y true se x é diferente de y ;
false caso contrário
< Menor do que x < y true se x é menor do que y;
false caso contrário
<= Menor ou igual x <= y true se x é menor ou igual
a do que y; false caso cont.
> Maior do que x > y true se x é menor do que y;
false caso contrário
>= Maior ou igual x >= y true se x é maior ou igual
a do que y; false caso cont.
47
Operadores Lógicos
• Produzem sempre valores booleanos (1 ou 0)
Operador Significado Exemplo
! Operador Negação (ou not) !x
&& Operador E lógico (ou and) x && y
|| Operador Ou lógico (ou or) x || y
• Curto circuito!
48
24
28/04/15
49
25
28/04/15
Operadores
• Operador ternário
Bitwise
• & (and), | (or), ^ (xor), ~ (not)
• >>, <<
26
28/04/15
• Ta bom
27
28/04/15
float double
55
int n = 123456789;
float f = n; // f é 1.23456792E8
// houve perda de precisão
56
28
28/04/15
int n = 10;
float f = 12.3;
float x = n + f; // n é convertido p/ float
• Regras:
1. Se um operando for double => ambos viram d ouble;
2. Caso c ontrário, se um for float => ambos viram f loat;
3. Caso c ontrário, se um for long => ambos viram long;
4. Caso c ontrário => todos viram i nt;
57
double x = 9.997;
int nx = (int) x; // nx é 9.
// (int) – conversão (casting) de double para int
int t = 100;
byte b;
b = (byte) t; // casting de int para byte
58
29
28/04/15
59
double x = 10000/3D;
// 8 caracteres e 2 casas de precisão
System.out.printf(" %8.2f", x); // 3333.33
60
30
28/04/15
61
• Então, utiliza-‐se os métodos da classe Scanner para ler a entrada:
• next() – lê uma palavra (como String);
• nextInt() – lê um int;
• nextLine() – lê uma linha;
• nextByte(), nextShort(), nextDouble()...
62
31
28/04/15
64
32
28/04/15
import javax.swing.JOptionPane;
...
String aux = "";
float nota1 = 0.0, nota2 = 0.0, media = 0.0;
65
Comentários
• Linhas adicionadas para facilitar o entendimento do programa;
66
33
28/04/15
Comentários
/** Exemplo02:
Essa classe demonstra o uso de variáveis em Java.
São declaradas variáveis int e double...
*/
public class Exemplo02{
public static void main(String args[]){
int x = 10; // declaração variavel int
double dolar = 2.62;
/* As linhas seguintes enviam o conteudo
das variaveis para a tela */
System.out.println(x);
System.out.prinln(dolar);
}
}
67
34