SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Java e Orientação a
Objetos
João Sávio Ceregatti Longo
Campus Ambassador
Sun Microsystems

                             1
História do
Um pouco de Java
 Solaris e
 OpenSolaris




 Sun Confidential: Internal Only   2
“Write once,
run anywhere”

    Sun Confidential: Internal Only   3
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
Java




       Sun Confidential: Internal Only   5
Plataforma Java
• J2SE
• J2ME
• J2EE




              Sun Confidential: Internal Only   6
JDK
• Conjunto de ferramentas para se desenvolver
  programas em Java
• javac + JVM + bibliotecas + APIs + utilitários
• Open Source




                    Sun Confidential: Internal Only   7
JRE
• Conjunto de ferramentas necessárias para a
  execução de programas Java
• JVM + bibliotecas + utilitários




                   Sun Confidential: Internal Only   8
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
Por que usar Java?

• Comunidade   MUITO GRANDE
      scend
 e c re         o demais

                 Sun Confidential: Internal Only   10
História do
 Orientação a
Solaris e
   Objetos
OpenSolaris




Sun Confidential: Internal Only   11
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
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
Sun Confidential: Internal Only   14
Sun Confidential: Internal Only   15
Demo
demo

 Sun Confidential: Internal Only   16
Criando uma classe
  O que toda conta bancária tem?
• Número
• Nome cliente
• Saldo
• Limite



                   Sun Confidential: Internal Only   17
Criando uma classe
  O que toda conta é capaz de fazer?
• Sacar
• Depositar
• Verificar saldo




                   Sun Confidential: Internal Only   18
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
2º. Download!
• Tópico → Palestra: Java e Orientação a
  Objetos




                   Sun Confidential: Internal Only   20
3º. Abrir o projeto com o NetBeans




               Sun Confidential: Internal Only   21
Implementação em Java
 public class Conta {
   int numero;
   String nome;
   double saldo;
   double limite;




                        Sun Confidential: Internal Only   22
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
A instanciação
• Conta c;

• c = new Conta();




                     Sun Confidential: Internal Only   24
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
Criando classes
  2 tipos de contas:
• Básica
  Limite = 0

• Premium
  Limite = - 200
  Transferência

                       Sun Confidential: Internal Only   26
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
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
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
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
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
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
Juntando tudo
• E isso foi um exemplo de Polimorfismo!




                   Sun Confidential: Internal Only   33
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
Polimorfismo
• Pode-se fazer um array de contas contendo
  vários subtipos dela
• Pode-se fazer generalizações




                   Sun Confidential: Internal Only   35
Sun Confidential: Internal Only   36
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
E depois?
• Certificação SCJP
• Java para Web – jsp + servlets, JSF
• J2ME
• ...




                      Sun Confidential: Internal Only   38
Obrigado!
João Sávio Ceregatti Longo
joao.savio@sun.com / joaosavio@gmail.com
www.joaosavio.com / http://blogs.sun.com/joaosavio


                                                     39

Weitere ähnliche Inhalte

Ähnlich wie Java E Orientacao A Objetos

Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_onRoberson Alves
 
Java Craftsmanship: Lessons Learned on How to Produce Truly Beautiful Java Code
Java Craftsmanship: Lessons Learned on How to Produce Truly Beautiful Java CodeJava Craftsmanship: Lessons Learned on How to Produce Truly Beautiful Java Code
Java Craftsmanship: Lessons Learned on How to Produce Truly Beautiful Java CodeEdson Yanaga
 
Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Jonathan Filho
 
OOP (in portuguese)
OOP (in portuguese)OOP (in portuguese)
OOP (in portuguese)Bruno Pedro
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de MemóriaCDS
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server FacesJoão Longo
 
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeadosC#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeadosGiovanni Bassi
 
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)elliando dias
 
Camada de Negócios de Verdade com Spring
Camada de Negócios de Verdade com SpringCamada de Negócios de Verdade com Spring
Camada de Negócios de Verdade com Springelliando dias
 
Programação orientada a objetos em delphi
Programação orientada a objetos em delphiProgramação orientada a objetos em delphi
Programação orientada a objetos em delphiHelder Lopes
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerGiovanni Kenji Shiroma
 

Ähnlich wie Java E Orientacao A Objetos (20)

Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_on
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Java Craftsmanship: Lessons Learned on How to Produce Truly Beautiful Java Code
Java Craftsmanship: Lessons Learned on How to Produce Truly Beautiful Java CodeJava Craftsmanship: Lessons Learned on How to Produce Truly Beautiful Java Code
Java Craftsmanship: Lessons Learned on How to Produce Truly Beautiful Java Code
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Ionic workshop
Ionic workshopIonic workshop
Ionic workshop
 
Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017
 
Jsummit 2014
Jsummit 2014Jsummit 2014
Jsummit 2014
 
OOP (in portuguese)
OOP (in portuguese)OOP (in portuguese)
OOP (in portuguese)
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memória
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeadosC#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados
 
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)
 
Camada de Negócios de Verdade com Spring
Camada de Negócios de Verdade com SpringCamada de Negócios de Verdade com Spring
Camada de Negócios de Verdade com Spring
 
Unoeste Reuniao Ap
Unoeste Reuniao ApUnoeste Reuniao Ap
Unoeste Reuniao Ap
 
Bada
BadaBada
Bada
 
Programação orientada a objetos em delphi
Programação orientada a objetos em delphiProgramação orientada a objetos em delphi
Programação orientada a objetos em delphi
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
Secomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao ElixirSecomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao Elixir
 
Treinamento DBA Essential
Treinamento DBA EssentialTreinamento DBA Essential
Treinamento DBA Essential
 

Mehr von João Longo

Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server FacesJoão Longo
 
Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!João Longo
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEJoão Longo
 
Web Services com NetBeans
Web Services com NetBeansWeb Services com NetBeans
Web Services com NetBeansJoão Longo
 
Introdução ao OpenSolaris
Introdução ao OpenSolarisIntrodução ao OpenSolaris
Introdução ao OpenSolarisJoão Longo
 
Sun e Open Source
Sun e Open SourceSun e Open Source
Sun e Open SourceJoão Longo
 

Mehr von João Longo (7)

Minicurso Java Server Faces
Minicurso Java Server FacesMinicurso Java Server Faces
Minicurso Java Server Faces
 
Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!Netbeans 6.7: a única IDE que você precisa!
Netbeans 6.7: a única IDE que você precisa!
 
GlassFish
GlassFishGlassFish
GlassFish
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2ME
 
Web Services com NetBeans
Web Services com NetBeansWeb Services com NetBeans
Web Services com NetBeans
 
Introdução ao OpenSolaris
Introdução ao OpenSolarisIntrodução ao OpenSolaris
Introdução ao OpenSolaris
 
Sun e Open Source
Sun e Open SourceSun e Open Source
Sun e Open Source
 

Java E Orientacao A Objetos

  • 1. Java e Orientação a Objetos João Sávio Ceregatti Longo Campus Ambassador Sun Microsystems 1
  • 2. História do Um pouco de Java Solaris e OpenSolaris Sun Confidential: Internal Only 2
  • 3. “Write once, run anywhere” Sun Confidential: Internal Only 3
  • 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
  • 5. Java Sun Confidential: Internal Only 5
  • 6. Plataforma Java • J2SE • J2ME • J2EE Sun Confidential: Internal Only 6
  • 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
  • 16. Demo demo Sun Confidential: Internal Only 16
  • 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
  • 24. A instanciação • Conta c; • c = new Conta(); Sun Confidential: Internal Only 24
  • 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