Declaração

Olá pessoal!

Desenvolvo em Delphi e estou aprendendo java. Baixei algumas apostilas da Caelum e vi alguns exemplos conforme abaixo:

public class ConjuntoEspalhamento {
private ArrayList<LinkedList> tabela = new ArrayList<LinkedList>();
public [b]ConjuntoEspalhamento/b{
for (int i = 0;i<26;i++){
LinkedList lista = new LinkedList();
tabela.add(lista);
}
}
}

Não entendi essa declaração. É possível dar nomes a métodos iguais ao nome da classe?

Outra questão: Quando instancio a classe(ConjuntoEspalhamento conjunto = new ConjuntoEspalhamento()) não consigo enxergar o método ConjuntoEspalhamento.

Alguém poderia nos dar uma luz?

Obrigado.

Na veradade isto é um construtor.

Benvindo ao java.
Primeiro, temos algumas “boas práticas” no guj, uma delas é a formatação de código na postagem.
Basta colocar o código entre as tags [code]

Java permite a declaração de métodos com mesmo nome da Classe, eles se chamam construtores e podem receber de 0 a n parâmetros.
Não consegue pois o está chamando quando instancia a classe.

Boa tarde Rbcastro…

Vejo que é novo no forum então sempre que for postar algum código procure colocar entre as tags [ code ], assim fica mais fácil a interpretação de quem vai lhe ajudar.

Isso que você está pensando ser um método na verdade é um construtor, e realmente você nunca vai encontrá-lo através de uma instância de ConjuntoEspalhamento.
Para você transformar isso em um método você deve inserir um retorno. Algo parecido com isso :

public class ConjuntoEspalhamento { private ArrayList<LinkedList<String>> tabela = new ArrayList<LinkedList<String>>(); public [b] void [/b] ConjuntoEspalhamento(){ for (int i = 0;i<26;i++){ LinkedList<String> lista = new LinkedList<String>(); tabela.add(lista); } } }

Não é legal ter um método com o mesmo nome da classe para exatamente não ficar confundindo se é ou não é um método, se é um construtor e tals…
Procure estudar sobre construtores, vai lhe ajudar muito nessa fase dos estudos.

Nossa, estou impressionado com a rapidez nas respostas.

Obrigado amigos.

Desculpa pessoal mais eu não entendi o lance de boas práticas.
Como assim: Basta colocar o código entre as tags [code]?

Poderíam me dar um exemplo?

Obrigado.

só dar uma lidinha aqui:

public class ConjuntoEspalhamento {
	private ArrayList<LinkedList<String>> tabela = new ArrayList<LinkedList<String>>();
	public ConjuntoEspalhamento(){
    for (int i = 0;i<26;i++){
    	LinkedList<String> lista = new LinkedList<String>();
    	tabela.add(lista);
      }
	}
}

Entendi pessoal!

Pesso desculpas novamente.

Obrigado.

sem problemas rbcastro,

Se sua dúvida foi solucionada, altere o assunto e coloque [RESOLVIDO]
para que as pessoas saibam que o assunto está encerrado.

Seja bem vindo ao GUJ.

Obrigado pessoal.

Somente um parêntese.
Como várias coisas que foram copiadas do C++, uma delas é particularmente confusa, que é o construtor ser representado por algo que parece um método, mas cujo nome é exatamente o mesmo da classe. Pior ainda, no Java é possível ter ao mesmo tempo um método normal e um construtor que têm o mesmo nome - isso é um requinte de crueldade que não existe no C++. Portanto, muita gente se estrepa com o seguinte código:

class Classe {
    /** Construtor - veja que tem o mesmo nome da classe, mas não tem um tipo de retorno */
    public Classe() { }
    /** Método público - isso é um requinte de crueldade! Note que tem um tipo de retorno, que é "void". */
    public void Classe() { }
}