Classe de objeto em Java está presente em java.lang pacote.
divisão de string java
- Cada classe é direta ou indiretamente derivada da classe Object. Se uma classe não estende nenhuma outra classe, então ela é uma classe filha direta da Classe de objeto Java e se estender outra classe, será derivado indiretamente.
- A classe Object fornece vários métodos, como toString()é igual() código hash() e muitos outros.
- A classe Object atua como raiz da hierarquia de herança em qualquer programa Java.
Aqui usamos o toString() e código hash() métodos da classe Object para fornecer uma representação de string personalizada para uma classe .
Java
// Java Code to demonstrate Object class class Person { String n; //name // Constructor public Person(String n) { this.n = n; } // Override toString() for a // custom string representation @Override public String toString() { return 'Person{name:'' + n + ''}'; } public static void main(String[] args) { Person p = new Person('Geek'); // Custom string representation System.out.println(p.toString()); // Default hash code value System.out.println(p.hashCode()); } }
Saída
Person{name:'Geek'} 321001045 Explicação: No exemplo acima, substituímos o toString() método para fornecer um representação de string personalizada da classe Person e use o código hash() método para exibir o valor do código hash padrão do objeto.
Métodos de classe de objeto
A classe Object fornece vários métodos que são os seguintes:
- Método toString()
- Método hashCode()
- método igual (objeto obj)
- método finalizar()
- método getClass()
- Método clone()
- wait() notify() notifyAll() (métodos de simultaneidade)

1. Método toString()
O toString() fornece uma representação String de um objeto e é usado para converter um objeto em uma String. O método toString() padrão para a classe Object retorna uma string que consiste no nome da classe da qual o objeto é uma instância, o caractere de arroba `@' e a representação hexadecimal não assinada do código hash do objeto.
Observação: Sempre que tentamos imprimir qualquer referência de objeto, o método toString() é chamado internamente.
Exemplo:
classe pública Aluno {
string pública paraString() {
return 'Objeto aluno';
}
}
Explicação: O método toString() é substituído para retornar uma representação de string personalizada do objeto Student.
2. Método hashCode()
Para cada objeto, a JVM gera um número exclusivo que é um código hash. Ele retorna inteiros distintos para objetos distintos. Um equívoco comum sobre este método é que o método hashCode() retorna o endereço do objeto que não está correto. Ele converte o endereço interno do objeto em um número inteiro usando um algoritmo. O método hashCode() é nativo porque em Java é impossível encontrar o endereço de um objeto, então ele usa linguagens nativas como C/C++ para encontrar o endereço do objeto.
Uso do método hashCode():
Ele retorna um valor hash que é usado para pesquisar objetos em uma coleção. JVM (Java Virtual Machine) usa o método hashcode ao salvar objetos em estruturas de dados relacionadas a hash, como HashSet HashMap Hashtable etc. A principal vantagem de salvar objetos com base em código hash é que a pesquisa se torna fácil.
Observação: Substituição de código hash() O método precisa ser feito de forma que para cada objeto geremos um número único. Por exemplo, para uma classe Student, podemos retornar o roll no. de um aluno do método hashCode(), pois é único.
Exemplo:
classe pública Aluno {
rolo interno;
@Substituir
public int hashCode() {
rolo de retorno;
}
}
Explicação: O código hash() é substituído para retornar um valor de hash personalizado com base na rolagem do objeto Student.
3. Método igual (objeto obj)
O é igual() O método compara o objeto fornecido com o objeto atual. Recomenda-se substituir este método para definir condições de igualdade personalizadas.
Observação: Geralmente é necessário substituir o código hash() método sempre que este método for substituído de modo a manter o contrato geral para o método hashCode que afirma que objetos iguais devem ter códigos hash iguais.
Exemplo:
classe pública Aluno {
rolo interno;
@Substituir
público booleano igual a (Objeto o) {
if (ou instância do Aluno) {
return this.roll == ((Aluno) o).roll;
}
retornar falso;
}
}
Explicação: O é igual() o método é substituído para comparar rolar entre dois objetos Student.
4. Método getClass()
O getClass() O método retorna o objeto de classe deste objeto e é usado para obter a classe de tempo de execução real do objeto. Também pode ser usado para obter metadados desta classe. O objeto Class retornado é o objeto bloqueado pelos métodos estáticos sincronizados da classe representada. Como é final, não o substituímos.
Exemplo:
Java// Demonstrate working of getClass() public class Geeks { public static void main(String[] args) { Object o = new String('GeeksForGeeks'); Class c = o.getClass(); System.out.println('Class of Object o is: ' + c.getName()); } }
Saída
Class of Object o is: java.lang.String
Explicação: O getClass() O método é usado para imprimir a classe de tempo de execução do objeto 'o'.
Observação: Após carregar um arquivo .class, a JVM criará um objeto do tipo java.lang.Class na área Pilha. Podemos usar este objeto de classe para obter informações em nível de classe. É amplamente utilizado em Reflexão
5. Método finalize()
O finalizar() O método é chamado logo antes de um objeto ser coletado como lixo. É chamado de Coletor de lixo em um objeto quando o coletor de lixo determina que não há mais referências ao objeto. Devemos substituir o método finalize() para descartar recursos do sistema, realizar atividades de limpeza e minimizar vazamentos de memória. Por exemplo, antes de destruir o contêiner da web dos objetos Servlet, sempre chamamos o método finalize para realizar atividades de limpeza da sessão.
Observação: O método finalize é chamado apenas uma vez em um objeto, mesmo que esse objeto seja elegível para coleta de lixo diversas vezes.
Exemplo:
Java// Demonstrate working of finalize() public class Geeks { public static void main(String[] args) { Geeks t = new Geeks(); System.out.println(t.hashCode()); t = null; // calling garbage collector System.gc(); System.out.println('end'); } @Override protected void finalize() { System.out.println('finalize method called'); } }
Saída
1510467688 end finalize method called
Explicação: O finalizar() O método é chamado logo antes do objeto ser coletado como lixo.
6. Método clone()
O clone() O método cria e retorna um novo objeto que é uma cópia do objeto atual.
Exemplo:
classe pública Book implementa Cloneable {
String privada t; //título
livro público(String t) {
isto.t = t;
}
@Substituir
clone de objeto público() lança CloneNotSupportedException {
retornar super.clone();
}
}
Explicação: O clone() método é substituído para retornar uma cópia clonada do Objeto livro .
7. Métodos de simultaneidade: wait() notify() e notifyAll()
Esses métodos estão relacionados comunicação de thread em Java . Eles são usados para fazer threads esperar ou notificar outros em programação simultânea.
Exemplo de uso de todos os métodos de classe de objeto em Java
Javaimport java.io.*; public class Book implements Cloneable { private String t; // title private String a; // author private int y; // year public Book(String t String a int y) { this.t = t; this.a = a; this.y = y; } // Override the toString method @Override public String toString() { return t + ' by ' + a + ' (' + y + ')'; } // Override the equals method @Override public boolean equals(Object o) { if (o == null || !(o instanceof Book)) { return false; } Book other = (Book)o; return this.t.equals(other.getTitle()) && this.a.equals(other.getAuthor()) && this.y == other.getYear(); } // Override the hashCode method @Override public int hashCode() { int res = 17; res = 31 * res + t.hashCode(); res = 31 * res + a.hashCode(); res = 31 * res + y; return res; } // Override the clone method @Override public Book clone() { try { return (Book)super.clone(); } catch (CloneNotSupportedException e) { throw new AssertionError(); } } // Override the finalize method @Override protected void finalize() throws Throwable { System.out.println('Finalizing ' + this); } public String getTitle() { return t; } public String getAuthor() { return a; } public int getYear() { return y; } public static void main(String[] args) { // Create a Book object and print its details Book b1 = new Book( 'The Hitchhiker's Guide to the Galaxy' 'Douglas Adams' 1979); System.out.println(b1); // Create a clone of the Book object and print its // details Book b2 = b1.clone(); System.out.println(b2); // Check if the two objects are equal System.out.println('b1 equals b2: ' + b1.equals(b2)); // Get the hash code of the two objects System.out.println('b1 hash code: ' + b1.hashCode()); System.out.println('b2 hash code: ' + b2.hashCode()); // Set book1 to null to trigger garbage collection // and finalize method b1 = null; System.gc(); } }
Saída
The Hitchhiker's Guide to the Galaxy by Douglas Adams (1979) The Hitchhiker's Guide to the Galaxy by Douglas Adams (1979) b1 equals b2: true b1 hash code: 1840214527 b2 hash code: 1840214527
Explicação: O exemplo acima demonstra o uso de toString() igual() hashCode() e clone() métodos no Aula de livros .