Ola amigos
Digamos que eu tenha a classe Humano.
e na classe Main eu tenha o seguinte código:
- Humano h;
- homem = new Humano() ;
Qual a diferença entre 1) e 2) ???
Muito Obrigado.!
Ola amigos
Digamos que eu tenha a classe Humano.
e na classe Main eu tenha o seguinte código:
Qual a diferença entre 1) e 2) ???
Muito Obrigado.!
Bem, no primeiro caso, você apenas declarou um objeto:
Humano homem;
Por enquanto esse objeto não tem nenhum referência, ele é null.
No segundo caso, você cria uma instância da classe Humano:
homem = new Humano();
Agora o seu objeto homem tem uma referência à classe Humano. Faça o teste:
if(homem instanceof Humano)
System.out.println("Homem é um Humano!!");
Espero que te ajude…
T+
Na (1) vc tem uma ‘variavel’ do tipo Humano, na (2) vc tem uma instância da classe.
Sendo curto e grosso, quando vc precisa instânciar uma classe, vc usa new, isto te proporciona um objeto no qual é possivel acessar os métodos dessa classe. Se vc apenas declara uma variavel e não cria a instância, vc não tem acesso a esses métodos.
Porém, pra que criar uma variavel sem instânciar diretamente?
[code]MinhaClasse mc = null;
try{
mc = MetodoBizarro(parametros); /* este metodo pode disparar uma exception, porém nada impede que mc possa ser null */
} catch(Exception e){
e.printStackTrace();
}
OutroMetodo(mc);[/code]
Pattern Singleton - quando vc lida com algo que só pode ter uma instância - conexão com banco de dados por exemplo - pode declarar diversas variaveis de um certo tipo e usa-las para armazenar a instância atual do objeto. o famoso getInstance()
Definição de atributos: vc pode instanciar no construtor ou em outro objeto.
Algo que sua imaginação mandar.
[quote=marcosfzara]Ola amigos
Digamos que eu tenha a classe Humano.
e na classe Main eu tenha o seguinte código:
Qual a diferença entre 1) e 2) ???
Muito Obrigado.!
[/quote]
a linha 1 apenas cria uma ‘variavel’ que pode conter a referencia para um objeto do tipo Humano;
na linha 2, vc cria um Humano (ou seja, aloca espaço para ele na memoria) e faz com que a variavel homem referencia aquele objeto
Terminologicamente, tem alguns pontos que eu não concordo muito com o pessoal que postou aqui até agora, principalmente quando usam o termo “referência”.
Escrevi algo a respeito da pergunta do OP no seguinte post
http://www.guj.com.br/posts/list/34091.java#182009
Por favor, avisem se escrevi alguma bobagem, ok!