Buscar

NCE - Curso de Nivelamento Java - aula3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Operadores
 Aritméticos
 Relacionais
 Lógicos 
 Binários
 Ternário
 Concatenação
 
Operadores Aritméticos
 + Adição 
 também utilizado para concatenação de strings
 - Subtração
 * Multiplicação
 / Divisão
 % Módulo
 resto da divisão inteira)
 Pode-se usar uma notação sintetizada, que faz uma 
operação e uma atribuição ao mesmo tempo:
 x += 5 é a mesma coisa que x = x + 5
 
Operadores Relacionais
 Operadores relacionais geram um resultado 
booleano (true ou false).
 Eles avaliam a relação entre os valores dos 
operandos.
 Os operadores relacionais são:
 menor que ( < ) 
 maior que ( > )
 menor ou igual a ( <= )
 maior ou igual a ( >= )
 igual ( == )
 diferente ( != )
 
Operadores Lógicos
 Os operadores lógicos produzem um valor 
booleano conforme o relacionamento lógico 
dos seus argumentos.
 AND ( && )
 OR ( || )
 NOT ( ! )
 Operadores lógicos apenas podem ser 
aplicados a valores booleanos.
 
Operadores Binários
 Permitem a manipulação de bits individuais 
em tipos primitivos.
 AND(&)
 OR(|)
 XOR(^)
 NOT(~)
 
Operador Ternário
 Retorna um valor ou outro dependendo do 
resultado de uma expressao booleana.
 Sempre retorna um valor.
 variavel = expressao ? valor, se true : valor, se false;
 Exemplos:
 int x = (y != 0)?50:500;
 String titulo = (sexo == 'f')?"Sra.":"Sr.";
 
Operador de Concatenação
 O operador + aplicado a strings tem o objetivo de 
concatená-las.
 Numa concatenação de valores, se pelo menos um 
deles é uma string, os outros são convertidos para 
string.
 A conversão é feita automaticamente para primitivos. 
Para os demais tipos a conversão é feita chamando-
se o método toString().
 Exemplo:
 String s = 1 + 2 + 3 + "=" + 4 + 5 + 6;
 Resultado: s contem a String "6 = 456"
 
Exercício 10
 Refaça o exercício 9 usando o operador % 
(módulo).
 
Visibilidade e acesso de atributos
 friendly (padrão) - O atributo só pode ser acessado 
por classes de dentro do mesmo pacote.
 public - Acesso permitido a classes de qualquer 
pacote, respeitando o acesso à classe a qual 
pertence.
 private - Acesso permitido somente para a classe 
que definiu o atributo.
 protected - Acesso permitido a classes do mesmo 
pacote e subclasses da classe onde foi definido o 
atributo (mesmo estando em outro pacote).
 
Alguns modificadores de atributos
 final - Atributos final não podem ser 
reinicializados com outro valor.
 static - Atributo estático pertence à 
classe e é compartilhado por todas as 
suas instâncias.
 
Visibilidade e acesso de métodos
 friendly (padrão) - O método só pode ser acessado 
por classes de dentro do mesmo pacote.
 public - Acesso permitido a classes de qualquer 
pacote, respeitando o acesso à classe a qual 
pertence.
 private - Acesso permitido somente para a classe 
que definiu o método.
 protected - Acesso permitido a classes do mesmo 
pacote e subclasses da classe onde foi definido o 
método (mesmo estando em outro pacote).
 
Alguns modificadores de métodos
 static - Métodos estáticos pertencem à 
classe e não às suas instâncias. Eles podem 
ser invocados pela classe, senão houver 
instâncias. Métodos estáticos só podem 
acessar variáveis ou métodos também 
estáticos.
 abstract - Método abstrato não implementa 
funcionalidade, tem apenas a assinatura. 
 final - Método final não pode ser sobrescrito 
nas subclasses.
 
Visibilidade e acesso de classes
 friendly (padrão) - A classe só pode ser 
acessada por outras classes de dentro do 
mesmo pacote.
 public - A classe pode ser acessada por 
qualquer outra, independente de estar no 
mesmo pacote.
 
Modificadores de classes
 abstract - É uma classe abstrata
 Classes abstratas não tem sua 
implementação totalmente definida.
 Elas não podem ser instanciadas, ou seja, 
não geram objetos.
 final
 Classes final não podem ser estendidas, 
ou seja, não possuem subclasses.
 
TypeCast
 TypeCast é a capacidade de trocar 
dinamicamente o tipo de um dado para um 
outro tipo compatível.
 Quando possível, Java troca automaticamente o 
tipo de um dado.
 É necessário fazer TypeCast quando queremos 
explicitar a conversão de tipos ou para forçar o 
compilador a fazer uma conversão que 
normalmente ele não poderia fazer.
 
TypeCast
 A sintaxe do TypeCast é:
 (tipo) variavel;
 Exemplo:
 Conta c = new Conta();
 ContaPoupanca cp = c; // ERRADO!!!
 ContaPoupanca cp = (ContaPoupanca) c;
 
Upcasting
 Tipos genéricos (acima, na hierarquia) sempre 
podem receber objetos de suas subclasses:
Conta c = new ContaPoupanca();
 Há garantia de que subclasses possuem pelo menos os 
mesmos métodos que a superclasse.
 c só tem acesso à "parte Conta" de ContaPoupanca. 
Qualquer extensão (métodos definidos em 
ContaPoupanca) faz parte somente da extensão e não 
pode ser usada pela referência c.
 
Downcasting
 Tipos específicos (abaixo, na hierarquia) não 
podem receber explicitamente seus objetos que 
foram declarados como referências de suas 
superclasses:
Conta c = new Conta();
ContaPoupanca cp = c; // não compila!
 O código acima não compila, apesar de c apontar para 
uma Conta! 
 É preciso converter a referência:
 ContaPoupanca cp = (ContaPoupanca) c;
 
 Como realizar TypeCast nos casos abaixo:
Conta c = new Conta();
ContaCorrente cc = new ContaCorrente();
ContaPoupanca cp = new ContaPoupanca(); 
TypeCast
?
?
?
c = cc; 
c = cp;
cc = c; 
cp = c;
cc = cp; 
cp = cc;
OK!!! 
cc = (ContaCorrente) c;
cp = (ContaPoupanca) c;
cc = (ContaCorrente)(Conta)cp;
cp = (ContaPoupanca)(Conta)cc;
 
Interfaces e Classes
 A unidade fundamental de programação na 
linguagem de programação Java é a classe, 
mas a unidade fundamental de projeto 
orientado a objetos é o tipo.
 Interfaces definem tipos em uma forma 
abstrata como uma coleção de métodos ou 
outros tipos que formam o “contrato” para 
aquele tipo.
 
Interfaces e Classes
 Uma interface é uma expressão de projeto 
puro, enquanto que uma classe é uma 
mistura de projeto e implementação.
 Uma interface, portanto, promove – mas não 
define – muito mais formas de 
implementações do que uma classe: trata-se 
da generalização extrema!
 
“O Que?” x “Como?”
 Uma interface define “o que“ fazer:
 Não têm atributos de dados (só pode ter constantes estáticas);
 Não tem construtor;
 Todos os métodos são abstratos;
 Não é declarada como class, mas como interface.
 Objetos não são criados a partir de uma interface!
 Ex.:
interface Conta {
void encerrar( );
void creditar( double valor );
 void debitar( double valor );
}
 
“O Que?” x “Como?”
 A interface (“o que”) é conhecida em tempo 
de compilação, mas o objeto para o qual ela 
aponta (implementação – “como”) é 
conhecido em tempo de execução através de 
ligação tardia – late binding.
 Objetos podem ser substituídos em tempo de 
execução sem que seja necessário 
“reconstruir o programa”.
 
Polimorfismo
 O polimorfismo (poli=muitos, morfo=forma) destaca as muitas 
formas de execução de um tipo.
 Ex.:
Cliente umCliente = new PessoaFisica(“Henrique”);
Conta[] contas = new Conta[4];
contas[0] = new ContaPoupanca(umCliente, 200);
contas[1] = new ContaCorrente(umCliente, 200);
contas[2] = new ContaCorrente(umCliente, 600);
contas[3] = new ContaPoupanca(umCliente, 600);
for (int x = 0 ; x < clientes.length; x++){
contas[x].debitar(50);
 System.out.println(clientes[x].saldo);
 }
 
Exercício 11
 Altere os atritutos de todas as classes de 
modo que tenham visibilidade protected.
 Compilenovamente todas as classes após 
as alterações usando javac.
 
Exercício 12
 Crie uma programação no método void 
debitar(double valor) da classe 
ContaPoupanca que testa a quantidade de dias 
acumulados no atributo carenciaDias (criado no 
exercício 5). Quando carenciaDias for menor que 
90 (dias) o débito deverá ser realizado com cpmf. 
Do contrário, o débito deverá ser realizado sem 
cpmf. Use um comando if – else.
 Compile novamente todas as classes após as 
alterações usando javac.
 
Exercício 13
 Transforme a classe OperacaoBancaria em uma interface 
possuindo um metodo void realizar( ) . Com isso, troque 
extends OperacaoBancaria para implements 
OperacaoBancaria na programação das classes-filhas de 
OperacaoBancaria.
 As classes OperacaoMesmoBanco e OperacaoOutroBanco 
deverão se tornar classes abstratas. Sobrescreva nessas 
classes o método void realizar( ) da interface 
OperacaoBancaria de modo que ele seja nessas classes-
filhas um método abstrato. 
 Compile novamente todas as classes após as alterações usando 
javac.
 
Exercício 14
 Crie na classe Saque os atributos double 
valor e Conta contaOrigem;
 Crie na classe Deposito os atributos 
double valor e Conta contaDestino;
 Crie na classe Doc os atributos double 
valor, Conta contaCredito, Conta 
contaDebito e o atributo de valor constante 
double TARIFA igual a R$ 10,00.
 Compile novamente todas as classes após as 
alterações usando javac.
 
Exercício 15
 Pense como seria realizado um depósito, um saque 
e um doc no cotidiano de uma agência bancária e 
depois crie uma programação dentro do método 
void realizar( ) da classe Deposito, outra 
programação dentro do método void 
realizar( ) da classe Saque e outra 
programação dentro do método void 
realizar( ) da classe Doc.
 Compile novamente todas as classes após as 
alterações usando javac.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29

Outros materiais