SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
Fundamentos da Linguagem Java




           A Classe Object
       Classes Básicas da API do Java



           Ludimila Monjardim Casagrande
                       2012
A Classe Object

     Object é a classe raiz da hierarquia de classes
        do Java.

     Toda classe em Java, mesmo as que não
        pertencem à API, estendem Object, ainda que
        isso não tenha sido explicitamente declarado.

     Sendo assim, toda instância de uma classe
        implementada em Java é um Object e herda os
        métodos declarados nesta superclasse.


Fundamentos do Java   ©2012 Ludimila Monjardim Casagrande   2
Métodos Especiais de Object

     Existem dois métodos de Object que merecem
        atenção especial por serem muito utilizados.
     Esses métodos são:
           public String toString()
           public boolean equals(Object obj)
     A intenção por trás dos métodos equals() e
        toString() é justamente que eles sejam
        sobrescritos de modo mais específico e adequado
        para cada uma das subclasses.
Fundamentos do Java       ©2012 Ludimila Monjardim Casagrande   3
O Método toString() de Object

     A implementação do método toString() na classe
        Object é:
         public String toString( ) {
           return getClass().getName() + "@" +
                   Integer.toHexString(hashCode());
         }




Fundamentos do Java        ©2012 Ludimila Monjardim Casagrande   4
Sobrescrevendo o Método toString()
 public class Usuario extends Object {
    private String nome;
    private String login;
    private String senha;
      public Usuario(){
      }
      public Usuario(String nome, String login, String senha) {
         super();
         this.nome = nome;
         this.login = login;
         this.senha = senha;                                    Toda vez que o método
      }                                                        public String toString( ) é
     //getters e setters...                                           implementado em uma
      @Override                                                     classe, está ocorrendo a
      public String toString() {                                    sobreposição do mesmo
         return "Usuario [nome=" + nome +
                 ", login=" + login + ", senha=" + senha + "]";         método declarado na
      }                                                                  superclasse Object.
 }
Fundamentos do Java                 ©2012 Ludimila Monjardim Casagrande                        5
Sobrescrevendo o Método toString()
 public class Aluno extends Usuario {
      private int ra; //registro acadêmico do aluno
      public Aluno(){
      }
      public Aluno(String nome, String login, String senha, int ra){
         super(nome, login, senha);
         this.ra = ra;
      }
      …
      @Override
                                                             Neste caso o método
      public String toString() {                          public String toString( )
         return "Aluno [nome=" + getNome() +                     está sobrepondo a
                 ", login=" + getLogin() +                       implementação do
                 ", senha=" + getSenha() +
                                                                 mesmo método na
                 ", ra=" + ra + "]";
      }                                                      superclasse Usuario.
 }

Fundamentos do Java            ©2012 Ludimila Monjardim Casagrande                    6
Chamada de Métodos Sobrepostos
 public class Main {
      public static void main(String[] args) {
          /* A variável o do tipo Object recebe qualquer objeto,
           * pois todo objeto estende Object */
          Object o = new Aluno(“Ana”, “ana”, “123”, 30200);

          System.out.println(o.toString());
      }
 }

 Qual será o resultado?                                                 o    0x0123
 O resultado será Aluno [nome=Ana, login=ana,
                                                                    nome      Ana
 senha=123, ra=30200], isto é, o método chamado                               ana
                                                                     login
 foi o da subclasse. Embora a variável seja do tipo                 senha     123
 Object, o objeto para o qual ela aponta é do tipo                      ra   30200
 Aluno.
Fundamentos do Java           ©2012 Ludimila Monjardim Casagrande                     7
O Método equals de Object

     A implementação do método equals na classe
        Object é:
         public boolean equals(Object obj) {
           return (this == obj);
         }

     O objetivo deste método é realizar a
        comparação do objeto como um todo e não a
        comparação somente entre as referências para
        os objetos, o que é proporcionado pelo operador
        ==.

Fundamentos do Java        ©2012 Ludimila Monjardim Casagrande   8
Sobrescrevendo o Método equals
  public boolean equals(Object obj) {                                 u1    0x0123
    if (this == obj){
         return true;                                              nome      Ana
                                                                    login    ana
    }                                                              senha     123
    if (obj instanceof Usuario) {
         Usuario u = (Usuario)obj;
         if (this.nome.equals(u.nome) &&
              this.login.equals(u.login) &&
              this.senha.equals(u.senha)) {
              return true;                                             u2   0x0456
         }
    }                                                              nome      Ana
    return false;                                                   login    ana
  }                                                                senha     123
                Método equals da classe Usuario.
Fundamentos do Java          ©2012 Ludimila Monjardim Casagrande                     9
Sobrescrevendo o Método equals
  public boolean equals(Object obj) {                           a1 0x0123
    if (this == obj){
                                                           nome       Ana
         return true;                                        login    ana
    }                                                      senha      123
    if (obj instanceof Aluno){                                  ra  30200
         Aluno a = (Aluno)obj;
         if (this.ra == a.ra && this.getNome().equals(a.getNome())) {
              return true;
         }
                                                                 a2 0x0456
    }
    return false;                                           nome       Ana
  }                                                           login    ana
                 Método equals da classe Aluno.             senha      123
                                                                 ra   30200

Fundamentos do Java        ©2012 Ludimila Monjardim Casagrande                10
Implementação do Método equals

    Sugestão de passo a passo para implementar o
       método equals:
         1.    Verifique se a referência para o objeto corrente (this) é igual à
               referência do objeto passado como argumento usando o operador
               de igualdade.
         2.    Se as referências forem iguais retorne true.
         3.    Verifique se o objeto passado como argumento é instância da
               classe corrente usando o operador instanceof. Em caso negativo,
               retorne false.
         4.    Em caso positivo, compare os valores internos dos dois objetos
               usando o operador de igualdade para comparação de primitivos e
               o método equals para a comparação de objetos, incluindo Strings.
         5.    Se os valores forem iguais retorne true, caso contrário retorne
               false.

Fundamentos do Java              ©2012 Ludimila Monjardim Casagrande               11
Referências

     Capítulo 15 – Object.
        Orientação a Objetos em Java.
        K19 Treinamentos.
        http://www.k19.com.br/downloads/apostilas-java.

     Caelum: Ensino e Soluções em Java.
        FJ-11 – Java e Orientação a Objetos.
        http://www.caelum.com.br/curso/fj-11-java-
        orientacao-objetos/


Fundamentos do Java   ©2012 Ludimila Monjardim Casagrande   12

Mais conteúdo relacionado

Mais procurados

Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaCristiano Almeida
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecasMaurício Linhares
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaCharles Jungbeck
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaArthur Emanuel
 
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Professor Samuel Ribeiro
 

Mais procurados (20)

POO - 19 - Elementos Estáticos
POO - 19 - Elementos EstáticosPOO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
 
POO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - DatasPOO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - Datas
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em Java
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
POO - 07 - Operadores do Java
POO - 07 - Operadores do  JavaPOO - 07 - Operadores do  Java
POO - 07 - Operadores do Java
 
Refactoring
RefactoringRefactoring
Refactoring
 
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em JavaPOO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Java básico - Módulo 06: Array
Java básico - Módulo 06: ArrayJava básico - Módulo 06: Array
Java básico - Módulo 06: Array
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
 
Java6
Java6Java6
Java6
 
Java7
Java7Java7
Java7
 
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
 

Semelhante a Fundamentos Java classe Object métodos equals toString

Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetrosMaurício Linhares
 
Linguagem de programação implementação de classes
Linguagem de programação   implementação de classesLinguagem de programação   implementação de classes
Linguagem de programação implementação de classesCarlos Melo
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...Manuel Menezes de Sequeira
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Natanael Fonseca
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – IIIGabriel Faustino
 
04 modelagem classes
04 modelagem classes04 modelagem classes
04 modelagem classesjosejunior89
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosMoises Omena
 
Classes Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções JavaClasses Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções Javadanrleywillian1
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02Natanael Fonseca
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.pptEmerson Cardoso
 
introdução a linguagem java-2003
introdução a linguagem java-2003introdução a linguagem java-2003
introdução a linguagem java-2003elliando dias
 
AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptJoberthSilva
 
AULA 1 - Classes e Objetos.ppt
AULA 1 - Classes e Objetos.pptAULA 1 - Classes e Objetos.ppt
AULA 1 - Classes e Objetos.pptJoberthSilva
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e ExercíciosArthur Emanuel
 

Semelhante a Fundamentos Java classe Object métodos equals toString (20)

Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Linguagem de programação implementação de classes
Linguagem de programação   implementação de classesLinguagem de programação   implementação de classes
Linguagem de programação implementação de classes
 
Aula4
Aula4Aula4
Aula4
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
java_avancado.pdf
java_avancado.pdfjava_avancado.pdf
java_avancado.pdf
 
Java 07
Java 07Java 07
Java 07
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 
04 modelagem classes
04 modelagem classes04 modelagem classes
04 modelagem classes
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Classes Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções JavaClasses Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções Java
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
 
Java 05 Oo Basica
Java 05 Oo BasicaJava 05 Oo Basica
Java 05 Oo Basica
 
Java 06 Strings Arrays
Java 06 Strings ArraysJava 06 Strings Arrays
Java 06 Strings Arrays
 
introdução a linguagem java-2003
introdução a linguagem java-2003introdução a linguagem java-2003
introdução a linguagem java-2003
 
AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.ppt
 
AULA 1 - Classes e Objetos.ppt
AULA 1 - Classes e Objetos.pptAULA 1 - Classes e Objetos.ppt
AULA 1 - Classes e Objetos.ppt
 
Lp3
Lp3Lp3
Lp3
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 

Mais de Ludimila Monjardim Casagrande (10)

Gerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com ScrumGerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com Scrum
 
POO - 23 - Coleções da API do Java
POO -  23 - Coleções da API do Java POO -  23 - Coleções da API do Java
POO - 23 - Coleções da API do Java
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
POO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de DadosPOO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de Dados
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de ArgumentosPOO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
POO - 08 - Prática de Encapsulamento
POO - 08 - Prática de EncapsulamentoPOO - 08 - Prática de Encapsulamento
POO - 08 - Prática de Encapsulamento
 
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de DesenvolvimentoPOO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
 
POO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em JavaPOO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em Java
 

Fundamentos Java classe Object métodos equals toString

  • 1. Fundamentos da Linguagem Java A Classe Object Classes Básicas da API do Java Ludimila Monjardim Casagrande 2012
  • 2. A Classe Object  Object é a classe raiz da hierarquia de classes do Java.  Toda classe em Java, mesmo as que não pertencem à API, estendem Object, ainda que isso não tenha sido explicitamente declarado.  Sendo assim, toda instância de uma classe implementada em Java é um Object e herda os métodos declarados nesta superclasse. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 2
  • 3. Métodos Especiais de Object  Existem dois métodos de Object que merecem atenção especial por serem muito utilizados.  Esses métodos são:  public String toString()  public boolean equals(Object obj)  A intenção por trás dos métodos equals() e toString() é justamente que eles sejam sobrescritos de modo mais específico e adequado para cada uma das subclasses. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 3
  • 4. O Método toString() de Object  A implementação do método toString() na classe Object é: public String toString( ) { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 4
  • 5. Sobrescrevendo o Método toString() public class Usuario extends Object { private String nome; private String login; private String senha; public Usuario(){ } public Usuario(String nome, String login, String senha) { super(); this.nome = nome; this.login = login; this.senha = senha; Toda vez que o método } public String toString( ) é //getters e setters... implementado em uma @Override classe, está ocorrendo a public String toString() { sobreposição do mesmo return "Usuario [nome=" + nome + ", login=" + login + ", senha=" + senha + "]"; método declarado na } superclasse Object. } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 5
  • 6. Sobrescrevendo o Método toString() public class Aluno extends Usuario { private int ra; //registro acadêmico do aluno public Aluno(){ } public Aluno(String nome, String login, String senha, int ra){ super(nome, login, senha); this.ra = ra; } … @Override Neste caso o método public String toString() { public String toString( ) return "Aluno [nome=" + getNome() + está sobrepondo a ", login=" + getLogin() + implementação do ", senha=" + getSenha() + mesmo método na ", ra=" + ra + "]"; } superclasse Usuario. } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 6
  • 7. Chamada de Métodos Sobrepostos public class Main { public static void main(String[] args) { /* A variável o do tipo Object recebe qualquer objeto, * pois todo objeto estende Object */ Object o = new Aluno(“Ana”, “ana”, “123”, 30200); System.out.println(o.toString()); } } Qual será o resultado? o 0x0123 O resultado será Aluno [nome=Ana, login=ana, nome Ana senha=123, ra=30200], isto é, o método chamado ana login foi o da subclasse. Embora a variável seja do tipo senha 123 Object, o objeto para o qual ela aponta é do tipo ra 30200 Aluno. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 7
  • 8. O Método equals de Object  A implementação do método equals na classe Object é: public boolean equals(Object obj) { return (this == obj); }  O objetivo deste método é realizar a comparação do objeto como um todo e não a comparação somente entre as referências para os objetos, o que é proporcionado pelo operador ==. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 8
  • 9. Sobrescrevendo o Método equals public boolean equals(Object obj) { u1 0x0123 if (this == obj){ return true; nome Ana login ana } senha 123 if (obj instanceof Usuario) { Usuario u = (Usuario)obj; if (this.nome.equals(u.nome) && this.login.equals(u.login) && this.senha.equals(u.senha)) { return true; u2 0x0456 } } nome Ana return false; login ana } senha 123 Método equals da classe Usuario. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 9
  • 10. Sobrescrevendo o Método equals public boolean equals(Object obj) { a1 0x0123 if (this == obj){ nome Ana return true; login ana } senha 123 if (obj instanceof Aluno){ ra 30200 Aluno a = (Aluno)obj; if (this.ra == a.ra && this.getNome().equals(a.getNome())) { return true; } a2 0x0456 } return false; nome Ana } login ana Método equals da classe Aluno. senha 123 ra 30200 Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 10
  • 11. Implementação do Método equals  Sugestão de passo a passo para implementar o método equals: 1. Verifique se a referência para o objeto corrente (this) é igual à referência do objeto passado como argumento usando o operador de igualdade. 2. Se as referências forem iguais retorne true. 3. Verifique se o objeto passado como argumento é instância da classe corrente usando o operador instanceof. Em caso negativo, retorne false. 4. Em caso positivo, compare os valores internos dos dois objetos usando o operador de igualdade para comparação de primitivos e o método equals para a comparação de objetos, incluindo Strings. 5. Se os valores forem iguais retorne true, caso contrário retorne false. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 11
  • 12. Referências  Capítulo 15 – Object. Orientação a Objetos em Java. K19 Treinamentos. http://www.k19.com.br/downloads/apostilas-java.  Caelum: Ensino e Soluções em Java. FJ-11 – Java e Orientação a Objetos. http://www.caelum.com.br/curso/fj-11-java- orientacao-objetos/ Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 12