Comparando objetos atravs da sobreescrita do mtodo equals; Implementao do mtodo hashcode Clonagem de objetos atravs da sobreescrita do mtodo clone; Objetos imutveis Clonagem rasa; Clonagem profunda;; Java API Object Herana entre Objetos Java
Emprego da palavra chave extends;
Implementao da relao de herana entre as classes Pessoa e Aluno; Utilizao da palavra-chave super; Observar o funcionamento da herana atravs da classe TesteHeranca. Comparando Objetos
Mtodo equals para comparao entre objetos;
Implementao da classe Carro; Implementao do mtodo equals considerando a relao de herana entre as classes Aluno e Pessoa; Observar a operao do mtodo equals atravs da classe TesteEquals. Comparando Objetos
Simetria: para duas instncias, a e b,
a.equals(b) se e somente se b.equals(a); Reflexividade: para todas referncias no nulas, a.equals(a); Transitividade: se a.equals(b) e b.equals(c), ento a.equals(c); Consistncia com hashcode(): dois objetos iguais precisam ter o mesmo hashcode(); Implementao do Mtodo hashcode
Implementao do mtodo hashcode atravs
da classe Usuario; Observar a impresso do hashcode atravs da classe TesteHashcode; Observar o funcionamento do mtodo hashcode com a utilizao de colees de objetos atravs da classe Aviao e TesteHashcode2; Clonagem de Objetos
Mtodo clone para clonagem de objetos;
Clonagem rasa com a implementao da classe Carro; Clonagem profunda com a implementao da classe Funcionario; Observar a operao do mtodo clone atravs da classe TesteClone. Clonagem de Objetos
Implementar a interface Cloneable;
Incluir na sobre escrita do mtodo clone() suporte a exceptions. Objetos Imutveis
Objetos imutveis so objetos que, uma vez
instanciados, no podem ter seus estados internos modificados; A Java API apresenta diversas classes que so imutveis, como a classe String e as classes Wrappers (Integer, Double, etc); A utilizao deste recurso simplifica a codificao e a execuo dos aplicativos Java. Objetos Imutveis
So de simples construo, teste e utilizao;
So automaticamente "thread-safe" e no possuem problemas de sincronizao; Possibilitam seu uso em caches de objetos por utilizar hashCode; No necessitam serem copiados de forma defensiva quando utilizados como atributos em outros objetos (String, Integer, etc); So perfeitos para utilizar como ndices em Maps e elementos de um Set por no mudar de estado enquanto esto atribudos a uma coleo;