O documento apresenta os conceitos fundamentais de Java e Orientação a Objetos, incluindo a história da linguagem Java, suas principais características como plataforma independente, e os benefícios da programação orientada a objetos utilizando exemplos práticos de classes Conta e subclasses ContaBásica e ContaPremium.
4. Java
• Não gera um arquivo binário e sim um arquivo
com bytecodes
• Bytecode é a linguagem da máquina virtual
(JVM)
• A JVM interpreta os bytecodes e os
transforma em linguagem nativa
Sun Confidential: Internal Only 4
7. JDK
• Conjunto de ferramentas para se desenvolver
programas em Java
• javac + JVM + bibliotecas + APIs + utilitários
• Open Source
Sun Confidential: Internal Only 7
8. JRE
• Conjunto de ferramentas necessárias para a
execução de programas Java
• JVM + bibliotecas + utilitários
Sun Confidential: Internal Only 8
9. Por que usar Java?
• Plataforma independente
• Mais de 5 bilhões de dispositivos com Java
• Mais de 6 milhões de desenvolvedores pelo
mundo
• Open Source
Sun Confidential: Internal Only 9
10. Por que usar Java?
• Comunidade MUITO GRANDE
scend
e c re o demais
Sun Confidential: Internal Only 10
11. História do
Orientação a
Solaris e
Objetos
OpenSolaris
Sun Confidential: Internal Only 11
12. Programação Procedural
• Problema da validação do CPF
• Repetição de código
• Pouca reutilização
• Dificuldade na manutenção
Sun Confidential: Internal Only 12
13. Programação Orientada a Objetos
• Modela o mundo real com classes e objetos
• Classe → especificação para os objetos
• Objeto → instância de uma classe
• Com exemplos é mais fácil!!!
Sun Confidential: Internal Only 13
17. Criando uma classe
O que toda conta bancária tem?
• Número
• Nome cliente
• Saldo
• Limite
Sun Confidential: Internal Only 17
18. Criando uma classe
O que toda conta é capaz de fazer?
• Sacar
• Depositar
• Verificar saldo
Sun Confidential: Internal Only 18
19. 1º. Registre-se e baixe o projeto
• http://osum.sun.com/group/unesprc
• http://osum.sun.com/group/uniararas
• http://osum.sun.com/group/etebayeux
Sun Confidential: Internal Only 19
20. 2º. Download!
• Tópico → Palestra: Java e Orientação a
Objetos
Sun Confidential: Internal Only 20
21. 3º. Abrir o projeto com o NetBeans
Sun Confidential: Internal Only 21
22. Implementação em Java
public class Conta {
int numero;
String nome;
double saldo;
double limite;
Sun Confidential: Internal Only 22
23. Implementação em Java
public void sacar(int quantidade) {
saldo = saldo – quantidade;
}
public void depositar(int quantidade) {
saldo = saldo + quantidade;
}
}
Sun Confidential: Internal Only 23
25. Testando a classe Conta
public class Main {
public static void main(String[] args) {
Conta c;
c = new Conta();
c.saldo = 10000;
c.sacar(1000);
System.out.println(“Saldo atual = “ + c.saldo);
}
}
Sun Confidential: Internal Only 25
26. Criando classes
2 tipos de contas:
• Básica
Limite = 0
• Premium
Limite = - 200
Transferência
Sun Confidential: Internal Only 26
27. Criando classes
• A conta Básica É-UM tipo de Conta
• A conta Premium É-UM tipo de Conta
• “É-UM” se refere à Herança
Sun Confidential: Internal Only 27
28. Implementação em Java
public class ContaBasica extends Conta {
}
public class ContaPremium extends Conta {
public void transferir(Conta a, Conta b) {
//realiza transferência
}
} Sun Confidential: Internal Only 28
29. Mas e o limite?
• Utilizaremos a sobrescrição
• ContaBasica e ContaPremium implementarão
o seu próprio método sacar baseado no limite
da conta
• O método da subclasse sobrescreverá o
método da superclasse
Sun Confidential: Internal Only 29
30. Mas e o limite?
• Na ContaBasica adicione:
public void sacar(int quantidade) {
/*
if (condição com limite = 0) {
realiza o saque
}
*/
}
Sun Confidential: Internal Only 30
31. Mas e o limite?
• Na ContaPremium adicione:
public void sacar(int quantidade) {
/*
if (condição com limite = - 200) {
realiza o saque
}
*/
}
Sun Confidential: Internal Only 31
32. Juntando tudo
public class Main {
public static void main(String[] args) {
Conta c1 = new ContaBasica();
c1.sacar(100); //limite = 0
Conta c2 = new ContaPremium();
c2.sacar(100); //limite = - 200
}
}
Sun Confidential: Internal Only 32
33. Juntando tudo
• E isso foi um exemplo de Polimorfismo!
Sun Confidential: Internal Only 33
34. Polimorfismo
Conta c2 = new ContaPremium();
• Detalhe: você só vai poder chamar métodos e
atributos de objetos Conta num objeto
ContaPremium!
Sun Confidential: Internal Only 34
35. Polimorfismo
• Pode-se fazer um array de contas contendo
vários subtipos dela
• Pode-se fazer generalizações
Sun Confidential: Internal Only 35
37. E agora, quem poderá me ajudar?
• Apostila fj-11 Caelum:
www.caelum.com.br
• Treinamentos Sun → SAI (instruções para acesso
em http://osum.sun.com/group/unesprc)
• Grupo de Java: www.javanoroeste.com.br
E-mail: javanoroeste-subscribe@googlegroups.com
• Fóruns: www.guj.com.br, www.javafree.org
Sun Confidential: Internal Only 37
38. E depois?
• Certificação SCJP
• Java para Web – jsp + servlets, JSF
• J2ME
• ...
Sun Confidential: Internal Only 38
39. Obrigado!
João Sávio Ceregatti Longo
joao.savio@sun.com / joaosavio@gmail.com
www.joaosavio.com / http://blogs.sun.com/joaosavio
39