Beruflich Dokumente
Kultur Dokumente
Verses do Java
Convenes:
Ao escrever uma classe, inicia-se sempre com
letra maiscula (e.g.: Carro, Casa, Pessoa,
Aluno)
Quando existe um nome com Mais de uma
palavra, da segunda palavra em diante devese colocar a primeira letra maiscula.(e.g.:
olaMundo, cadaDoJoao)
Comentrios
Para comentrios de uma linha, utilizado o
//
Para comentrios de duas ou mais linhas,
utilizado o /* para iniciar e o */ para fechar
TIPOS DE DADOS
Tipos de dados(caracteres)
Tipo: Caractere
Storage Requirement: 1 byte
Range: 0 a 256
Tipos de dados(caracteres)
Caracteres especiais
Tipos de dados(booleana)
Tipo: boolean
Storage Requirement: 1 bit
Range: 0 a 1
O 0 representa false
O 1 representa true
VARIVEIS
Variveis
Toda varivel possui um tipo
Declarao:
Tipo nome;
Exemplos:
double salario
long populacaoDaTerra
Char letra
Inicializando variveis
Para inicializar uma variavel, utiliza-se o
operador de atribuio =
Exemplos:
double numero = 65000.0
int idade = 12
Constantes
Constantes so variveis que possuem a
palavra final
Essas variaveis, aps serem inicializadas no
possuem mais o seu valor alterado
Exemplo:
final double CM_POR_POLEGADA = 2.54;
OPERADORES
Lembrete
os operadores somente devem ser utilizados
com valores que so de tipos primitivos.
Tambm so chamados de operadores
binrios por precisarem de dois operandos
para realizar a operao
Operadores aritmticos
Existem quatro operadores aritmticos:
+ (soma)
- (subtrao)
* (multiplicao)
/ (diviso)
Operadores aritmticos
Exemplos:
Int num = 5*4;
Int num2 = num 2;
Int num3 = num%num2;
Operadores aritmticos
Existem os operadores de incremento e
decremento:
++
--
Operador
Ao
PodemSoma
sero valor
utilizados
de
acordo
com
tabela:
da varivel i com 5
e depois
adiciona 1 ao
valor da a
varivel
i
5 + i++
5+ ++i
5 + i--
5+ --i
Operadores Relacionais
Utilizados para fazer a comparao de dois
valores:
So eles:
>, >=, <, <=, ==(igual), !=(diferente)
Operadores lgicos
Fazem a unio de duas ou mais operaes
relacionais
So eles:
&& (tambm chamado de e) realiza uma
multiplicao lgica
|| (tambm chamado de ou) realiza uma soma
lgica
Operadores lgicos
Exemplos:
int x =5, y = 10
X==5
&& y<=10
true(1) * true(1) => true(1)
X==5
|| y<10
true(1) + false(0)=> true(1)
Operadores lgicos
Existem um terceiro operador lgico chamado not,
sua funo inverter o valor booleano
Exemplo:
int x=5, y=10
!(x<y)
!(5<10)
!(true)
False
Operador ternrio
chamado de ternario por possuir tres partes:
If then else, funciona como se fossse um if,
porm tem o tamanho reduzido:
Exemplo:
int x = 5, y = 10;
x<y ? yMaior(); : xMaior();
& (e)
| (ou)
^ (xor)
~ (not)
FUNES MATEMTICAS
Classe Math
A classe Math possui diversas funes e
constantes, dessa forma fica mais fcil para
desenvolver expresses aritmticas.
Para utilizar as funes da classe Math sem
referencia-la, deve-se importar a classe para o
seu projeto da seguinte forma:
import static java.lang.Math.*;
Seno: Math.sin
Cosseno: Math.cos
Tangente: Math.tan
Arco Tangente: Math.atan //devolve o valor do angulo
para os quadrantes I e IV
Arco Tangente 2: Math.atan2 // devolve o valor do
angulo para qualquer um dos 4 quadrantes.
CONVERSO DE TIPOS
Converso implcita
Quando no necessrio mostrar que acontece a converso
As linhas pontilhadas representam perda de preciso
Ocorre um truncamento
char(2)
Tipo(num de bytes)
Byte(1)
short(2)
int(4)
long(8)
float(4)
double(8)
Sim
O outro operador ter seu
tipo convertido para
double
No
um dos
operador
es do
tipo float?
Sim
O outro operador ter
seu tipo convertido
para float
No
um dos
operador
es do
tipo long?
Sim
O outro operador ter
seu tipo convertido
para float
No
Ambos os
operandos
sero
convertidos
para o tipo
int
Converso explcita
A converso explicita acontece para qualquer
outro tipo de converso que no est listado
na imagem:
char(2)
Tipo(num de bytes)
Byte(1)
short(2)
int(4)
long(8)
float(4)
double(8)
Converso explcita
A converso explicita, tambm chamada de
cast, realizada da seguinte forma:
double x = 9.997;
int nx = (int) x;
Note que neste cast houve perda de preciso, o
valor da variavel nx 9 por que a parte decimal
descartada.
Nos casts realizado o truncamento do nmero
Associatividade
[] . ()
*/%
+-
== !=
&
&&
||
?: (operador ternrio)
Tipos enumerados
Algumas vezes as variveis devem ter somente alguns tipos
de valores especficos de valores, por exemplo, uma pizza
pode ser pequena, mdia ou grande, para que um programa
possua uma melhor integridade, pode-se definir tipos
enumerados para que os erros diminuam:
Exemplo de declarao:
enum Tamanhos{PEQUENO, MEDIO, GRANDE};
Tamanhos t = Tamanhos.PEQUENO;
STRINGS
Definio de string
uma classe Java utilizada para guardar uma sequencia de
caracteres.
Note que apesar de ser utilizado como um tipo de varivel,
esse tipo no primitivo e portanto no possvel aplicar
os operadores relacionais e lgicos diretamente.
Para utilizar as Strings declara-se a varivel da seguinte
forma:
String Rua = Av. Paulista;
String str = ; // essa string est vazia
Substrings
So subconjuntos de caracteres dentro das strings.
Tambm so strings
0
1
2
3
4
5
6
7
Exemplo:
o
\0
Concatenao
Significa juntar duas strings formando uma nova
Utiliza-se o operador +
Exemplo:
String a= abc";
String b = 123";
String c = a+b; // c = abc123
Operador == e as Strings
O operador igual utilizado com Strings(e qualquer outro
objeto que estudaremos mais para frente) compara
endereos de memoria)
Portanto, se a String no inicializada, o seu valor ser
null
Exemplo:
String a=null;
a == null // vai retornar o booleano true
\0
String a = abcdefg;
Char letra = a.charAt(2); // letra = c
String vazia
A string tambm pode estar vazia, para verificar se a
string est vazia, existem dois mtodos:
String str=;
str.length() == 0
A funo length() retorna o nmeros de caracteres
que a String possui
str.equals() // compara com uma String vazia
String a = abcdefg;
String b = a.toUpperCase(a); // b = ABCDEFG
String c = b.toLowerCase(b); // c = abcdefg
String d = abcdefg //note que h espaos
String e = d.trim() // e = abcdefg
Construtor de Strings
A concatenao de Strings pega duas String e gera uma nova, isso
consome muitos recursos, para que o uso dos recursos seja
diminudo, utiliza-se o StringBuilder:
StringBuilder builder = new StringBuilder();
//cria o construtor de Strings
builder.append(abc); // adiciona abc
builder.append(123); // adiciona 123
String resultado = builder.toString() //
retorna abc123
Funes do StringBuilder
java.lang.StringBuilder 5.0
StringBuilder() // cria o construtor com uma string vazia
int length() // rtorna o tamnho da string
StringBuilder append(String str) // agrega o valor da string str na string
StringBuilder append(char c) // agrega o valor na string
void setCharAt(int i, char c) // adiciona um caractere em um determinado indice
StringBuilder insert(int offset, String str) // insere a string str a partir da posicao i
StringBuilder insert(int offset, char c) // insere o caractere c na posio offset
StringBuilder delete(int startIndex, int endIndex) // apaga o conjunto de letras no
intervalo informado
String toString() // retorna a string que foi feita
CONTROLE DE FLUXO
Escopos
Escopos so conjuntos de instrues que esto dentro de um par de parnteses
As variveis somente existem dentro do escopo em que foram declaradas
Exemplo:
public static void main(String[] args)
{
int n;
. . .
{
int k;
. . .
}
// a varivel k no existe mais aqui
}
Comando break
O comando break, serve para iterromper o fluxo dentro
de um escopo:
{
......
break;
....
}
Os comandos abaixo do break, no sero executados.
Declaraes Condicionais
A declarao condicional no java possui a seguinte forma:
If(condio) umaDeclarao
Se voc deseja colocar mais de uma declarao, necessario utilizar
um par de parenteses para determinar o escopo
If(condio) {
declarao1
declarao2
.....
}
Declaraes condicionais
Caso seja necessrio realizar uma declarao se a condio for false, utiliza-se o comando else:
Se voc desejar colocar mais de uma declarao utilize o par de parnteses para determinar o escopo
Declaraes Condicionais
tambm existe o comando else if, que da mais possibilidades de
execuo das declaraes condicionais:
if(x<0) {
....// x negativo
} else if(x==0) {
...//x neutro
} else {
...//x positivo
}
Pode-se repetir o comando else if quantas vezes for necessrio
A repetio de ifs de orma sequencial pode ser cansativa, para resolver esse problema, existe o
switch:
Switch(umNumero) {
case 1: .... Break;
case 2: .... Break;
...
case n: .... Break;
Default: ....
}
Se a varivel umNumero for igual a um dos cases so executadas as declaraes referentes, se no
for encontrado o valor o default executado.
O break serve para que o switch seja interrompido aps as declaraes terem sido finalizadas.
O break opcional
De forma superficial, um if fresco
Labels
Com a rotulao dos escopos, possivel escolher quais escopos sero parados:
Scanner in = new Scanner(System.in);
int n;
lacoWhile:
while (true) // this loop statement is tagged with the label
{
read_data2:
for (int i = 0; i < 3; i++) {
System.out.print(i+"Enter a number >= 0: ");
n = in.nextInt();
if (n < 0) // should never happencan't go on
{
break; // vai parar apenas o lao for
}
// break out of read_data loop
}
}
Labels
Comando continue
Ao contrario do break, o comando continue, faz com que o fluxo volte para
o comeo do escopo:
Scanner in = new Scanner(System.in);
while (sum < goal)
{
System.out.print("Enter a number: ");
n = in.nextInt();
if (n < 0) continue;
sum += n; // not executed if n < 0
}
Se o valor de n for inferior a zero, o fluxo desviado para a condio do
while
BIG NUMBERS
O que fazer?
Se voc possui um nmero inteiro ou real que
seja muito grande, pode acontecer de as
variveis primitivas no terem a capacidade
para guarda-los, portanto ser necessrio a
utilizao das classes BigInteger e BigDecimal,
que guardam respectivamente nmeros
inteiros e reais
Exemplo:
BigInteger a = BigInteger.valueOf(100);
BigInteger b = BigInteger.valueOf(200);
BigInteger c = a.add(b); // representa a operao
//c = a+b;
BigInteger d = a.multiply(b); // d = a*b
BigInteger e = c.multiply(b.add(a)); //c * (a+b)
Funes do BigInteger
BigInteger add(BigInteger other)
BigInteger subtract(BigInteger other)
BigInteger multiply(BigInteger other)
BigInteger divide(BigInteger other)
BigInteger mod(BigInteger other) // resto de
diviso
Funes do BigDecimal
BigInteger add(BigInteger other)
BigInteger subtract(BigInteger other)
BigInteger multiply(BigInteger other)
BigInteger divide(BigInteger other)
Note que no h resto de diviso para nmeros
reais.
ARRAYS
O que so?
uma estrutura de dados que guarda um conjunto de
valores do mesmo tipo, cada valor possui um nmero de
ndice, e por esse ndice, pode ser acessado.
Utiliza-se o par de colchetes([]) para determinar um array,
cada par de colchetes adicionados em um array significa
uma dimenso.
O nmero mximos de dimenses o tamanho da sua
imaginao e a capacidade do computador.
Arrays tambm so um tipo de coleo, que sero vistos de
forma mais profunda, nas prximas aulas
O que so?
Os ndices sempre comeam a ser contados a
partir do zero, e o valor do ultimo ndice
sempre o nmero anterior ao tamanho do
array:
Array de 10 ndices:
ndices do array
0
55
47
897
94
87
89
51
547
41
10
Contedo do array
Preenchendo um array
Desta forma preenchemos um array com valores que
vo de 0 a 9:
int[] a = new int[10];
for (int i = 0; i < 10; i++)
a[i] = i;
Note que i=0 o primeiro ndice do vetor
Note que i<10, possui resultados verdadeiros com o i
valendo at 9 que o ultimo ndice do vetor
Preenchendo um array
Tambm podemos preencher um array da
seguinte forma:
int[] smallPrimes = { 2, 3, 5, 7, 11, 13 };
Arrays annimos
Em certos momentos, quando necessrio
passar um array para alguma funo, o array
pode ser criado no momento da chamada da
funo.
Podemos declarar um array annimo da seguinte
forma:
new int[] { 17, 19, 23, 29, 31, 37 };
O paralelo
As variveis primitivas guardam um valor
As variveis no primitivas guardam um
endereo de memria, esse endereo de
memoria pode ter um outro endereo de
memoria, ou um valor primitivo, o ponto final
sempre no valor primitivo
Cpia de um array
Arrays no um tipo primitivo, portanto a cpia de um
array vai fazer com que existam dois ponteiros
apontando para o mesmo endereo de memoria:
int[] smallPrimes = { 2, 3, 5, 7, 11, 13 };
int luckyNumbers = smallPrimes;
luckyNumbers[5] = 12; //o vetor
smallPrimes tambm mostrar o mesmo valor
Cpia de um array
Classificando um array
Voc pode desenvolver o seu proprio
algoritmo de classificao de arrays, porm o
java faz isso para voc atravs do quickSort:
int[] anonymous = { 17, 29, 19, 37 , 23, 31, };
Array.sort(anonymous); // vai ficar na ordem:
//17, 19, 23, 29, 31, 37