[RESOLVIDO] <identifier> expected na classe

Ola , estou aprendendo java recentemente e preciso desenvolver um programa para calcular distancia entre vertices.

class Destino {
	int indiceProxVertice;
	int distancia;
	
	Destino (int v, int d) {
		indiceProxVertice = v;
		distancia = d;
	}
}
class Vertice {
	Destino destinos [];
	
	Vertice(Destino d){
		destinos = new Destino[1];
		destinos[0] = d;
	} 
	
	Vertice (Destino d0, Destino d1) {
		destinos = new Destino[2];
		destinos[0]  = d0;
		destinos [1] = d1;
	}

	Vertice vertices [] = new Vertice[15];
	
	vertices [] = {
		new Vertice(new Destino( 1, 54), new Destino( 3, 75)),
		new Vertice(new Destino( 2, 80), new Destino( 4, 163)),
		new Vertice(new Destino( 7, 136)),
		new Vertice(new Destino( 5, 25), new Destino( 4, 154)),
		new Vertice(new Destino( 7, 66)),
		new Vertice(new Destino( 6, 122), new Destino( 8, 106)),
		new Vertice(new Destino( 7, 84), new Destino( 4, 62)),
		new Vertice(new Destino(10, 92), new Destino(11, 132)),
		new Vertice(new Destino( 6, 23), new Destino( 9, 52)),
		new Vertice(new Destino(10, 84), new Destino( 7, 66)),
		new Vertice(new Destino(11, 65), new Destino(13, 95)),
		new Vertice(new Destino(12, 62), new Destino(13, 11)),
		new Vertice(new Destino(15, 97)),
		new Vertice(new Destino(14, 74), new Destino(12, 36)),
		new Vertice(new Destino(15, 47)) 
	};
}

Mas meu codigo não compila, com erro de expected na linha de declaração do vetor “vertices”. Alguem pode ajudar ?

Posta a mensagem de erro inteira e referencie a linha em que ela ocorre

arquivo.java 27: error: < identifier> expected
vertices [] = {
________^

Essa parte:

vertices [] = {
	new Vertice(new Destino( 1, 54), new Destino( 3, 75)),
	new Vertice(new Destino( 2, 80), new Destino( 4, 163)),
	new Vertice(new Destino( 7, 136)),
	new Vertice(new Destino( 5, 25), new Destino( 4, 154)),
	new Vertice(new Destino( 7, 66)),
	new Vertice(new Destino( 6, 122), new Destino( 8, 106)),
	new Vertice(new Destino( 7, 84), new Destino( 4, 62)),
	new Vertice(new Destino(10, 92), new Destino(11, 132)),
	new Vertice(new Destino( 6, 23), new Destino( 9, 52)),
	new Vertice(new Destino(10, 84), new Destino( 7, 66)),
	new Vertice(new Destino(11, 65), new Destino(13, 95)),
	new Vertice(new Destino(12, 62), new Destino(13, 11)),
	new Vertice(new Destino(15, 97)),
	new Vertice(new Destino(14, 74), new Destino(12, 36)),
	new Vertice(new Destino(15, 47)) 
};

Tem que estar dentro de algum método para funcionar

Ou pode inicializar na declaração:

Vertice vertices [] = new Vertice[]  {
		new Vertice(new Destino( 1, 54), new Destino( 3, 75)),
		new Vertice(new Destino( 2, 80), new Destino( 4, 163)),
		new Vertice(new Destino( 7, 136)),
		new Vertice(new Destino( 5, 25), new Destino( 4, 154)),
		new Vertice(new Destino( 7, 66)),
		new Vertice(new Destino( 6, 122), new Destino( 8, 106)),
		new Vertice(new Destino( 7, 84), new Destino( 4, 62)),
		new Vertice(new Destino(10, 92), new Destino(11, 132)),
		new Vertice(new Destino( 6, 23), new Destino( 9, 52)),
		new Vertice(new Destino(10, 84), new Destino( 7, 66)),
		new Vertice(new Destino(11, 65), new Destino(13, 95)),
		new Vertice(new Destino(12, 62), new Destino(13, 11)),
		new Vertice(new Destino(15, 97)),
		new Vertice(new Destino(14, 74), new Destino(12, 36)),
		new Vertice(new Destino(15, 47)) 
	};
1 curtida

Em suma, você instanciar vetores de duas maneiras, no java:

int vetor[] = new int[10];

Ou

int vetor1[] = {1, 2, 3, 4, 5};

Você não pode fazer isso:

int vet[];
vet = {1, 2, 3};//Illegal start of expression

image

Que é o que provavelmente ocorreu no teu caso.

Declarei de outar foma e deu certo aqui Valew´s :smiley: