• Save
POO - 12 - A Classe Object
Upcoming SlideShare
Loading in...5
×
 

POO - 12 - A Classe Object

on

  • 1,600 views

 

Statistics

Views

Total Views
1,600
Views on SlideShare
1,600
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

POO - 12 - A Classe Object POO - 12 - A Classe Object Presentation Transcript

  • 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 30200Fundamentos 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