Valores Randomicos e classes

olá
vim aqui com uma pergunta
por acaso tem como importar a variável valor para uma outra classe? mais ou menos assim:

//********************************************************************************
package demonstracao;

public class main {

public static void main(String[]args) {
	main2 M2 = new main2();
	M2.teste();
	teste.valor
	System.out.println(valor);
}

}
//********************************************************************************
//********************************************************************************
package demonstracao;

import java.util.Random;

public class main2 {

public void teste() {
	Random ran = new Random();
	int valor = ran.nextInt(38);
}

}
//********************************************************************************
tipo isso eu sei que da errado mas tem como fazer algo do tipo?

Sim, é só fazer o método teste retornar o valor:

public class Main2 {

    // mudei o Random para ser um campo da classe
    private Random ran = new Random();

    public int teste() {
        // retorna o valor
        return ran.nextInt(38);
    }
}

Também mudei o Random para ser um campo da classe, assim você não precisa criar um novo toda vez que teste for chamado (quando tem new Random() dentro do método teste, uma nova instância é criada toda vez que teste é chamado, mas isso não me parece necessário). Da forma que está acima, apenas uma instância de Random é criada quando você fizer new Main2().

E no main você chama o método teste e guarda o retorno em uma variável:

Main2 m2 = new Main2();
int valor = m2.teste();
System.out.println(valor);

Também mudei o nome da classe para começar com letra maiúscula, e a variável com letra minúscula, para ficar aderente às convenções de código do Java.


Obs: quando for postar no fórum, coloque o código formatado. Basta selecioná-lo e usar o botão </> do editor:

1 curtida

muito obrigado
-G