Escolar Documentos
Profissional Documentos
Cultura Documentos
TECNOLOGIA DO PARÁ
Indice:
double d = 5
int i = d;
VARIÁVEIS PRIMITIVAS E CONTROLE DE FLUXO
double d = 5;
float f = 3;
float x = f + (float) d;
VARIÁVEIS PRIMITIVAS E CONTROLE DE FLUXO
CASTINGS
VARIÁVEIS PRIMITIVAS E CONTROLE DE FLUXO
OPERADORES
Operadores Aritméticos:
Os operadores aritméticos binários são: +, -, *, / e o operador módulo %.
Há ainda os operadores unários: Negação !, Pré e pós incremento ++, Pré e pós
decremento --, Sinal positivo +, Sinal negativo -
A operação é feita na precisão dos operandos:
5/2 resulta no valor 2,
Já a expressão 5.0/2.0 resulta no valor real 2.5
Operadores de atribuição:
Da mesma forma que a expressão: 5 + 3 resulta no valor 8, a atribuição: a = 5
resulta no valor 5.
Podemos escrever comandos do tipo: y = x = 5;
Neste caso, a ordem de avaliação é da direita para a esquerda.
VARIÁVEIS PRIMITIVAS E CONTROLE DE FLUXO
Os operadores lógicos
Combinam expressões booleanas.
A linguagem oferece os seguintes operadores lógicos:
&& operador binário E (AND)
|| operador binário OU (OR)
! operador unário de NEGAÇÃO (NOT)
VARIÁVEIS PRIMITIVAS E CONTROLE DE FLUXO
EXEMPLOS:
ESSA CLASSE DEMONSTRA A UTILIZAÇÃO DE VARIÁVEIS EM UMA CLASSE EM JAVA.
SÃO DECLARADAS VARIÁVEIS DO TIPO INT E DOUBLE.
O EXEMPLO TAMBÉM DEMONSTRA COMO IMPRIMIR O CONTEÚDO DAS VARIÁVEIS NA TELA
VARIÁVEIS PRIMITIVAS E CONTROLE DE FLUXO
EXEMPLOS:
VARIÁVEIS PRIMITIVAS E CONTROLE DE FLUXO
EXEMPLOS:
VARIÁVEIS PRIMITIVAS E CONTROLE DE FLUXO
EXEMPLOS:
VARIÁVEIS PRIMITIVAS E CONTROLE DE FLUXO
2 O IF E O ELSE
A sintaxe do if no Java é a seguinte:
if (condicaoBooleana) {
codigo;
}
else if
Complementar ao if/else.
Possibilita adicionar uma nova condição à estrutura de decisão.
Operador ternário:
É um recurso para tomada de decisões similar ao do if/else
Codificado em apenas uma linha
int i = 0;
while (i < 3) {
System.out.println(i);
i = i + 1; }
INTRUÇÕES DE LAÇO
3.2 O FOR
É outro comando de loop faz um trecho de código ser repetido enquanto
uma condição continuar verdadeira.
Mas além disso, o for isola também um espaço para inicialização de
variáveis e o modificador dessas variáveis. Isso faz com que fiquem mais
legíveis, as variáveis que são relacionadas ao loop:
Pós incremento ++
i = i + 1 pode ser substituído por i++ quando isolado, porém, em alguns
casos, temos essa instrução envolvida em, uma atribuição:
int i = 5;
int x = i++;
O operador ++, quando vem após a variável, retorna o valor antigo, e
Se você tivesse usado o ++ antes da variável (pré incremento), o
resultado seria 6
CONTROLANDO OS LOOPS
if (algumBooleano) {
int i = 5;
}
else {
int i = 10;
} System.out.println(i); // cuidado! Solução?
MOTIVAÇÃO
É uma maneira de programar que ajuda na organização.
CRIANDO UM TIPO:
Considere um programa para um banco, é bem fácil perceber que uma
entidade extremamente importante para o nosso sistema é a conta. Nossa
ideia aqui é generalizarmos alguma informação, juntamente com
funcionalidades que toda conta deve ter.
CRIANDO UM TIPO:
ORIENTAÇÃO A OBJETOS
Classe
É o projeto para instanciar um objeto, isto é, a definição de um objeto.
Utilizamos a especificação da Classe para poder criar instâncias que realmente
são objetos.
Especificação de um objeto
Uma classe possui atributos e também pode ter costrutores e métodos que irão
fazer parte do objeto.
Objeto
É o que podemos construir apartir de um projeto ou seja apartir de uma classe.
Atributos
São as caracteristicas de um objeto, o que todo objeto tem.
Métodos
É o que cada obejeto faz e como isto é feito.
class Conta {
int numero;
String dono;
double saldo;
double limite;
//..
}
class Programa {
public static void main(String[] args) {
new Conta();
}
}
class Programa {
public static void main(String[] args) {
Conta minhaConta;
minhaConta = new Conta();
minhaConta.dono = "Duke";
minhaConta.saldo = 1000.0;
System.out.println("Saldo atual: " + minhaConta.saldo);
}
}
ORIENTAÇÃO A OBJETOS
MÉTODOS
Agora vamos declarar dentro da classe, o que cada conta faz e como isto
é feito, os comportamentos de cada classe.
class Conta {
double salario;
// ... outros atributos ...
class Conta {
// ... outros atributos e métodos ...
class TestaAlgunsMetodos {
public static void main(String[] args) {
// criando a conta
Conta minhaConta;
minhaConta = new Conta();
class Conta {
Exemplo de uso:
minhaConta.saldo = 1000;
boolean consegui = minhaConta.saca(2000);
if (consegui) {
System.out.println("Consegui sacar");
} else {
System.out.println("Não consegui sacar");
}
minhaConta.saldo = 1000;
if (minhaConta.saca(2000)) {
System.out.println("Consegui sacar");
}else {
System.out.println("Não consegui sacar");
}
ORIENTAÇÃO A OBJETOS
class TestaDuasContas {
public static void main(String[] args) {
Conta minhaConta;
minhaConta = new Conta();
minhaConta.saldo = 1000;
Conta meuSonho;
meuSonho = new Conta();
meuSonho.saldo = 1500000;
}
}
ORIENTAÇÃO A OBJETOS
Conta c2;
c2 = new Conta();
}
ORIENTAÇÃO A OBJETOS
OBSERVE OS CÓDIGOS:
Conta c1;
c1 = new Conta();
Conta c2;
c2 = new Conta();
Exemplo:
class TestaReferencias {
public static void main(String args[]) {
Conta c1 = new Conta();
c1.deposita(100);
System.out.println(c1.saldo);
System.out.println(c2.saldo);
}
}
ORIENTAÇÃO A OBJETOS
O Método Transfere:
E se quisermos ter um método que transfere dinheiro entre duas contas?
Podemos • ficar tentados a criar um método que recebe dois parâmetros:
conta1 e conta2 do tipo Conta. Mas cuidado: assim estamos pensando
de maneira procedural.
A ideia é que, quando chamarmos o método transfere, já teremos um
objeto do tipo Conta (o this), portanto o método recebe apenas um
parâmetro do tipo Conta, a Conta destino (além do valor):
class Conta {
// atributos e metodos...
class Conta {
// atributos e metodos...
boolean transfere(Conta destino, double valor) {
boolean retirou = this.saca(valor);
if (retirou == false) {
// não deu pra sacar!
return false;
}
else {
destino.deposita(valor);
return true;
}
}
}
ORIENTAÇÃO A OBJETOS
class Conta {
int numero = 1234;
String dono = "Duke";
String cpf = "123.456.789-10";
double saldo = 1000;
double limite = 1000;
}
ORIENTAÇÃO A OBJETOS
class Cliente {
String nome;
String sobrenome;
String cpf;
}
class Conta {
int numero;
double saldo;
double limite;
Cliente titular;
// ..
}
ORIENTAÇÃO A OBJETOS
class Teste {
public static void main(String[] args) {
Conta minhaConta = new Conta();
Cliente c = new Cliente();
minhaConta.titular = c;
// ...
}
}
Ou ainda, pode fazer isso de uma forma mais direta e até mais
elegante:
minhaConta.titular.nome = "Duke";
ORIENTAÇÃO A OBJETOS
class Teste {
public static void main(String[] args) {
Conta minhaConta = new Conta();
minhaConta.titular.nome = "Manoel";
// ...
}
}
ORIENTAÇÃO A OBJETOS
class Conta {
int numero;
double saldo;
double limite;
Cliente titular = new Cliente();
}
Com esse código, toda nova Conta criada já terá um novo Cliente
associado, sem necessidade de instanciálo logo em seguida da
instanciação de uma Conta. Qual alternativa você deve usar? Depende do
caso: para toda nova Conta você precisa de um novo Cliente? É essa
pergunta que deve ser respondida. Nesse nosso caso a resposta é não,
mas depende do nosso problema.
Fim
Perguntas?