Escolar Documentos
Profissional Documentos
Cultura Documentos
Java Basico Modulo 02 PDF
Java Basico Modulo 02 PDF
www.t2ti.com
1
O Curso Java Starter foi projetado com o objetivo de ajudar quelas pessoas
que tm uma base de lgica de programao e desejam entrar no mercado de
trabalho sabendo Java,
A estrutura do curso formada por mdulos em PDF e por mini-cursos em
vdeo. O aluno deve baixar esse material e estud-lo. Deve realizar os exerccios
propostos. Todas as dvidas devem ser enviadas para a lista de discusso que est
disponvel para inscrio na pgina do Curso Java Starter no site www.t2ti.com. As
dvidas sero respondidas pelos instrutores Albert Eije, Cludio de Barros e Miguel
Kojiio, alm dos demais participantes da lista.
Nosso objetivo que aps o estudo do Curso Java Starter o aluno no tenha
dificuldades
para
acompanhar
um
curso
avanado
onde
poder
aprender
www.t2ti.com
2
Mdulo
02
Introduo
Se voc est achando essa parte do curso muito terica, no se preocupe com
isso. Voc vai usar quase tudo que est sendo visto aqui quando for criar uma
aplicao Java, seja ela desktop, para web ou mobile.
Assista aos mini-cursos NetBeans e Eclipe para observar como instalar e
utilizar essas IDEs. Voc pode escolher qualquer umas das duas para desenvolver os
seus projetos Java.
Tipos de Dados
Observe a tabela a seguir, sobre os tipos de dados. Esses tipos so conhecidos
como Tipos de Dados Primitivos. Como podemos observar a linguagem Java oferece
diversos tipos de dados com os quais podemos trabalhar. H basicamente duas
categorias em que se encaixam os tipos de dados: tipos primitivos e tipos de
referncias. Os tipos primitivos correspondem a dados mais simples ou escalares,
enquanto os tipos de referncias consistem em arrays, classes e interfaces. Estes
sero vistos nos mdulos subseqentes.
Vamos a uma descrio curta sobre cada um dos tipos:
Tipo
boolean
char
byte
short
Descrio
Pode ser contido em 1 bit, porm o seu tamanho no precisamente
definido. Assume os valores true ou false.
Caractere em notao Unicode de 16 bits. Serve para armazenar dados
alfanumricos. Tambm pode ser usado como um dado inteiro com valores
na faixa entre 0 e 65535.
Inteiro de 8 bits em notao de complemento de dois. Pode assumir valores
entre -27=-128 e 27-1=127.
Inteiro de 16 bits em notao de complemento de dois. Os valores possveis
www.t2ti.com
3
int
long
float
double
www.t2ti.com
4
www.t2ti.com
5
www.t2ti.com
6
/*
Abaixo simplesmente inserimos o valor do int em um long
que o dobro de um int. Ou seja, sem problemas!
*/
l = i;
System.out.println("valor de l = "+l);
System.out.println("-----------------------------");
/*
Sada da impresso:
valor de l = 1000
----------------------------*/
/*
Chegamos aos nmeros com ponto flutuante (casas decimais).
*/
System.out.println("=============================");
System.out.println("ponto flutuante");
System.out.println("=============================");
d = 125.32;
System.out.println("valor de d = " + d);
d = 125.32d;
System.out.println("valor de d = " + d);
d = 125.32f;
System.out.println("valor de d = " + d);
/*
no primeiro caso atribuimos 125.32 variavel d.
sem problemas. funciona legal, como podemos ver
na Sada da impresso.
Logo depois atribuimos 125.32d. Mas pra que serve
esse "d" depois do valor? Indica que estou afirmando
para o Java que a constante (125.32) um double.
Os dois casos acima so idnticos. Como assim? Para
o Java, o tipo padro de um literal com ponto
flutuante double. Portanto, no precisa colocar o
"d" depois do literal se quiser que ela seja double.
literal --> 125.32
Mas o terceiro caso interessante. Atribuimos
varivel d o seguinte valor: 125.32f. Dessa vez estamos
inserindo um float num double. problema nenhum, pois
o float 32 bit e o double 64 bit. Mas, observe a Sada
da impresso. Por que o nmero depois da casa decimal
ficou to quebrado? Investigue e comente na lista.
Sada da impresso:
=============================
ponto flutuante
www.t2ti.com
7
www.t2ti.com
8
www.t2ti.com
9
www.t2ti.com
10
Operadores
Os operadores em Java so muito parecidos com os da linguagem C. No
entanto, existe alguns operadores novos. Analise cuidadosamente a tabela abaixo e
faa diversos testes com esses operadores para se acostumar com eles. Durante o
desenvolvimento de seus sistemas voc utilizar, e muito, a maioria desses
operadores.
Grupo = operadores organizados em grupos;
Operador = cada um dos operadores;
Precedncia = ordem de precedncia dos operadores;
A = associatividade do operador (esquerda ou direita);
Operando = operandos do operador;
Descrio = descrio da operao.
Alguns operadores relacionados abaixo no sero comentados agora porque
so utilizados com objetos ou tipos referncias, assunto que ser estudado mais a
frente. Eles esto com a cor da linha diferente. Os demais j podem ser
implementados nos exerccios deste mdulo.
importante frisar que voc deve praticar bastante o uso desses operadores.
Crie uma classe com um mtodo Main, similar a que fizemos no programa anterior e
implemente diversas situaes onde voc possa analisar o uso de cada um dos
www.t2ti.com
11
Grupo
Operador
Precedncia A Operando
Delimitador
Delimitador
[]
objeto,membro
vetor
(argumentos)
Descrio
acesso a um membro
de um objeto ou classe.
acesso ao elemento de
um vetor
mtodo, lista de
acesso a elemento do
argumentos
vetor
varivel
ps-incremento, ps-
aritmtico
++ e --
aritmtico
++ e --
aritmtico
+e-
varivel
binrio
inteiro
binrio
booleana
classe
new
converso
(tipo)
aritmtico
*/%
nmero, nmero
aritmtico
+-
nmero, nmero
adio e subtrao
String
+ +=
String, qualquer
concatenao
binrio
<<
inteiro, inteiro
desl. a esquerda
binrio
>>
inteiro, inteiro
binrio
>>>
inteiro, inteiro
condicional
< <=
condicional
> >=
nmero, nmero
condicional
instanceof
referncia, tipo
D varivel
classe, lista de
argumentos
tipo, qualquer
coero
nmero, nmero
decremento
pr-incremento, prdecremento
mais e menos unrio
complemento de 1
(binrio)
Negao cujo resultado
lgico (true/false)
criao de objeto
converso de tipo
multiplicao, diviso e
mdulo (resto)
deslocamento a direita
com sinal
deslocamento a direita
com zeros
menor que, menor ou
igual a
maior que, maior ou
igual a
verificao de tipo
www.t2ti.com
12
==
condicional
!=
condicional
==
condicional
!=
binrio
&
lgico
&
binrio
10
Grupo
Operador
Precedncia
A Operando
lgico
binrio
lgico
lgico
&&
12
lgico
||
13
condicional
?:
14
atribuio
15
*= /= %=
referncia,
igualdade, endereo
referncia
dos objetos
referncia,
diferena, endereo de
referncia
objetos
inteiro, inteiro
E sobre bits
booleana,
booleana
11
inteiro, inteiro
E booleano
XOR sobre bits
Descrio
booleana,
booleana
booleano
inteiro, inteiro
OU sobre bits
booleana,
booleana
booleana,
booleana
booleana,
booleana
OU booleano
E condicional
OU condicional
booleana,
operador ternrio,
qualquer
condicional
varivel, qualquer
atribuio com
operao
+= -= <<=
>>= >>>=
&= ^= |=
Controle de Fluxo
O controle de fluxo efetuado atravs do uso de condicionais, que so
www.t2ti.com
13
if-else
Sintaxe:
if (expresso booleana)
instruo_simples;
if (expresso booleana) {
instrues
} else if (expresso booleana) {
instrues
} else {
instrues
}
if (expresso booleana) {
instrues
}
while e do-while
Sintaxe:
while (expreso booleana)
{
instrues;
}
do
{
instrues;
} while (expreso booleana );
www.t2ti.com
14
for
Sintaxe:
for ( inicializao;
expresses booleanas;
passo da repetio )
instruo_simples;
for ( inicializao;
expresses booleanas;
passo da repetio )
{
instrues;
}
O for pode conter apenas uma instruo no seu corpo. Neste caso no
necessrio abrir um bloco. Isso assim porque o for j implementa alguns comandos
na sua assinatura, ou seja, no seu cabealho, como a inicializao da varivel e o
passo da repetio, ou seja, o incremento/decremento da varivel.
Veja os exemplos:
//esse t bem fcil.
for ( int x = 0; x < 10; x++ ) {
System.out.println ("item " + x);
}
//esse j no to simples s de olhar.
for ( int x = 0, int y = 25; x < 10 && (y % 2 == 0); x++, y = y - 1 ) {
System.out.println (x + y);
}
//tambm podemos fazer um lao infinito com o for
for ( ; ; ) {
if (obj.z == 0) {
break;
}
}
www.t2ti.com
15
break e continue
Voc deve ter observado que quando fizemos os laos infinitos com o while e
com o for utilizamos um comando break. Para que ele serve? Este comando serve
para quebrar o lao, ou seja, ele far com que o lao seja interrompido.
O comando continue tambm influi dentro de um lao. Mas ele no vai quebrar
o lao. Ele interrompe aquela iterao do lao e reinicia o bloco com a prxima
iterao.
www.t2ti.com
16
switch (case)
Sintaxe:
switch(seletor_inteiro) {
case valor_inteiro_1 :
instrues;
break;
case valor_inteiro_2 :
instrues;
break;
...
default:
instrues;
}
switch(letra) {
case 'A' :
System.out.println("A");
break;
case 'B' :
System.out.println("B");
break;
...
default:
System.out.println("?");
}
Palavras Reservadas
www.t2ti.com
17
Tente utilizar algumas dessas palavras como nome de variveis e veja como o
compilador Java se comporta.
Voc deve ter percebido que no utilizamos um tipo String neste mdulo. O
Java possui um tipo String, no entanto, String no Java no um tipo primitivo.
Falaremos sobre String em um mdulo posterior.
Entrada de Dados
Como eu fao para ler algo que o usurio digita no prompt?
Observe o programa abaixo:
//importe a classe Scanner para utilizar a leitura pelo teclado
//Similar ao #include do C
import java.util.Scanner;
public class Leitura {
public static void main(String[] args) {
// crie a varivel de leitura dos dados
Scanner s = new Scanner(System.in);
// use os mtodos de leitura especficos do tipo desejado
System.out.print("digite uma linha: ");
String linha = s.nextLine(); // le a linha
System.out.print("digite um numero: ");
int i = s.nextInt(); // le um inteiro
System.out.print("digite um numero: ");
double d = s.nextDouble(); // le um ponto-flutuante
}
}
Com o estudo do programa acima j d para voc solicitar que o usurio digite
alguma coisa e utilizar o que o mesmo est digitando.
www.t2ti.com
18
Exerccios
Aprenda com quem tambm est aprendendo, veja e compartilhe as suas respostas
no nosso Frum:
Exerccios Mdulo 02 Tipos Primitivos, Operadores e Controle de Fluxo
01 - Escreva um programa que imprima o resultado das expresses abaixo:
321+2+1+3
2x34x5
2+63/7x9
3 % 4 8
02 - Escreva um programa que declare, inicialize e imprima as seguintes
variveis:
Inteiro i de 32 bits com valor 1
Inteiro j de 64 bits com valor 2
Ponto-flutuante p de 32 bits com valor 20.0
Ponto-flutuante q de 64 bits com valor 30.0
Boolean b com valor verdadeiro
Caracter c com valor k
03 - Implemente um programa que recebe um nmero de 1 a 7 e imprime o
dia da semana correspondente.
04 - Altere o programa do exerccio anterior para ficar recebendo o nmero
dentro de um lao enquanto o nmero for diferente de 0 (zero).
05 - Implemente um programa que recebe repetidamente um nmero de 1 a
12, enquanto esse nmero for diferente de 0 (zero), e imprime o ms correspondente.
Quando o nmero estiver fora do intervalo permitido, a mensagem ms invlido
dever ser exibida.
06 - Escreva um lao while que execute 20 vezes, imprimindo o valor da
varivel x que inicialmente est com valor 10. Converta este lao para um do-while.
07 - Escreva um programa que imprima na tela a soma dos nmeros mpares
entre 1 e 30 e a multiplicao dos nmeros pares entre 1 e 30.
08 - Escreva um programa que percorra dois laos de 0 a 10, um interno ao
outro, imprimindo os contadores, e quando estes forem iguais, o programa deve
passar prxima interao do lao mais externo, caso contrrio, deve imprimir os
valores dos contadores dos dois laos.
09 - Desenvolva um programa que solicita ao usurio um nmero inteiro de no
mximo 4 dgitos. Inverta esse nmero.
10 Desenvolva um programa que dado um nmero inteiro o programa
informe se o mesmo um nmero primo.
www.t2ti.com
19
www.t2ti.com
20
*
**
***
****
*****
******
*******
********
********
*******
******
*****
****
***
**
*
********
*******
******
*****
****
***
**
*
*
**
***
****
*****
******
*******
********
www.t2ti.com
21