que diferença faz!
com ou sem negrito, a pergunta ta ali!
W
wallck
Jaison:
olá pessoal queria q vc’s me respondesse qual a diferença entre essas duas assinaturas:
publicLivrodesempilha(){}
e:
publicvoiddesempilha(Livrol){}
o public void desempilha eu sei q não tem retorno, e o public Livro desempilha, será porque ele tem um retorno?
abraços!
Cara,
o public Livro desempilha(){} vai desempilhar o ultimo objeto do tipo Livro da sua suposta Pilha.
o public void desempilha(Livro l) vai desempilhar exatamente o objeto do tipo Livro de nome l enviado como parâmeto da sua suposta Pilha.
B
bruno_nunes
public Livro desempilha(){}
Não pega nenhum argumento e retorna uma referência a um objeto da classe Livro, né isso ?
andrik
bom não entendi bem a sua dúvida, mas vou responder pelo que entendi
no primeiro método:
é um método público então pode ser utilizado por qualquer classe, claro fazendo o devido import, o método retorna um instância da classe Livro
no segundo método:
tbm é público então é a mesma regra do anterior, e esse método não retorna nada, ele recebe um Livro como parâmetro e executa a sua lógica
pelo que eu imagino, o primeiro método retira um livro da sua “pilha” e o retorna para quem chamou esse método e o segundo ele recebe um livro como parâmetro e o tira da “pilha”, se for isso realmente vc deve dar uma revisada nesses métodos pois se for uma pilha realmente ela deve funcionar no sistema (LIFO) (Last In First Out) (último a entrar é o primeiro a sair) então não teria sentido de vc desempilhar um item específico, vc vai desempilhando conforme tem itens no topo da pilha
espero te ajudado qualquer coisa posta ae
danieldestro
Galera, não entendi como tiraram as conclusões sobre as possíveis implementações destes métodos. Temos muitas Mãe Dinah por aqui.
Enfim...
Respondendo a questão do amigo.
Você tem dois métodos com o mesmo nome, porém com assinaturas diferentes. Isso é chamado de overloading (sobrecarga) de métodos.
Em Java é possível ter métodos com nomes iguais e argumentos e retornos diferentes.
Só é possível ter retornos diferentes se os métodos têm argumentos diferentes.
Ex:
public void aaa() { ... }
public int aaa( int b ) { ... }
Isto já NÃO pode:
public void aaa() { ... }
public int aaa() { ... }
peczenyj
para emular um método com varios tipos de retorno, ele pode retornar um objeto e dentro usar um if junto com instance of, não ?
danieldestro
Não sei se isso é EMULAR… mas pode usar a hierarquia de classes (herança) para fazer isso sim:
public Object foo( int bar ) {
if( bar < 0 ) return new String("Negativo");
else if( bar == 0 ) return new Integer(0);
else return new Long(bar);
}
E depois:
Object o = foo( 10 );
if( o instanceof String ) {
System.out.println( o );
} else {
//faça algo com "o"
}