Erro no código

Estava fazendo um exercicio de java que consiste em cria um vetor de inteiros com 10 posições e ele é preenchido com dados digitados pelo usuário através da classe Scanner e depois ordenar este vetor utilizando o método “sort” da classe Arrays. Fiz o código mas não consigo encontrar o erro, alguém poderia me ajudar ?

import java.util.Scanner;
import java.util.Arrays;

public class OrdenaVetor
{
Scanner dados = new Scanner(System.in);

int[] vetor = new int[10];

for (int i = 0; i < vetor.length; i++)
{	
	System.out.println("Digite um número: ");
	vetor[i] = dados.nextInt();
}

Arrays.sort(vetor);

for (int i = 0; i < vetor.length; i++)
{
	System.out.println("Vetor " + i + ": " + vetor[i]);
}

}

Não está faltando o “public static void main”?

(Infelizmente o Java é burocrático e você tem de conviver com isso. Podia ser pior - podia ter de escrever uma DATA DIVISION em Cobol :slight_smile: )

Mas qual é o erro?

O que ocorre? Não compila, não ordena, não armazena os valores…

[quote=jks1903]Mas qual é o erro?

O que ocorre? Não compila, não ordena, não armazena os valores…[/quote]

Só de olhar, dá para perceber que o programa está “quase certo” - só falta a declaração do main.
Não peguei esse código para compilar, mas parece que só de acertar a história do “main” ele vai funcionar logo de cara.
É coisa de quem já tem experiência em outras linguagens mas não se acostumou com a parte burocrática - sabe como é que é, Java é quase Cobol :slight_smile:

import java.util.Scanner; 
import java.util.Arrays; 

public class OrdenaVetor { 
        //faltou apenas o main...
	public static void main(String[] args) {
		Scanner dados = new Scanner(System.in); 
		int[] vetor = new int[10]; 

		for (int i = 0; i &lt; vetor.length; i++) {	
			System.out.println(&quot;Digite um número: &quot;); 
			vetor[i] = dados.nextInt(); 
			} 

		Arrays.sort(vetor); 

		for (int i = 0; i &lt; vetor.length; i++) { 
			System.out.println(&quot;Vetor &quot; + i + &quot;: &quot; + vetor[i]); 
			}	 
		}
	}

[quote=bezier curve][quote=jks1903]Mas qual é o erro?

O que ocorre? Não compila, não ordena, não armazena os valores…[/quote]

Só de olhar, dá para perceber que o programa está “quase certo” - só falta a declaração do main.
Não peguei esse código para compilar, mas parece que só de acertar a história do “main” ele vai funcionar logo de cara.
É coisa de quem já tem experiência em outras linguagens mas não se acostumou com a parte burocrática - sabe como é que é, Java é quase Cobol :slight_smile:
[/quote]

Como você disse, só estava faltando o método main. Outra dúvida que tenho é se posso declarar um objeto fora do método main ? Criei o método main e continuou dando erro, porque o objeto Scanner dados estava fora do escopo do método main.

Lembre-se, quando você faz:

Object a = new Object();

Você está criando uma variavel de referencia que aponta para objetos do tipo objeto.

Sim, você pode declarar variaveis de referencia for de qualquer metodos, elas são chamadas de variaveis de instancia:

<> <> <> <>;

private String variavelDeInstancia;

Ou elas podem ser variaveis de classe:

<> static <> <> <>;

private static final String VARIAVEL_DE_CLASSE = "ALGUMA COISA";

Ficaria assim numa classe:

public class SuaClasse {
	private static final String VARIAVEL_DE_CLASSE = "ALGUMA COISA";
	private static String OUTRA_VARIAVEL_DE_CLASSE = "OUTRA COISA";
	private String variavelDeInstancia = "MAIS UMA COISA";
	private final String outraVariavelDeInstancia = "";
	
	public static void main(String[] args) {
		System.out.println(VARIAVEL_DE_CLASSE);
		System.out.println(OUTRA_VARIAVEL_DE_CLASSE);
		SuaClasse classe = new SuaClasse(); //para acessar variaveis de instancia você precisa de uma instancia
		System.out.println(classe.variavelDeInstancia);
		System.out.println(classe.outraVariavelDeInstancia);
	}
}