Set e Get com Array

Olá, sou estudante de java e me deparei com um empasse. Tenho um Array de inteiros privado separado em uma classe(Obs. fiz assim para treinar o uso do get e do set) e outra classe que deve setar os valores nos endereços do Array. Este é um exemplo reduzido do meu código para que vocês entendam melhor

//Classe com os numeros a serem utilizados
public class Numeros {

    private int[] numeros = new int[]{
                0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
}

    //GUARDA A COMBINAÇÃO DE 5 DEZENAS
public class Dezenas {
    private int[] dezenas = new int[2];
    //----------------------------------------------------------------------------------------------------------------

    public void setDezenas(int... dezenas) {
        this.dezenas = dezenas;
    }

    public int[] getDezenas() {
        return this.dezenas;
    }}

   //FAZ TODAS AS COMBINAÇÕES POSSÍVEIS
public class Gerador {
  
    private void gerador() {
        for (int numero : numeros) {

            dezenas[0] = numero;

            for (int numero1 : numeros) {
                dezenas[1] = numero1;
                  }}}}

O código em uma unica classe funciona, mas como estou treinando os modificadores de acesso quero descobrir como se faz. No caso do for em “dezenas[]” como iria setar o endereço usando o set? Da forma que está ai é de quando tudo fica em uma mesma classe.

E aí, Weriky!

Bom, vamos do começo. Primeiro, entendo que você esteja treinando alguns conceitos de orientação à objetos, então explore mesmo os métodos getters e setters. Porém, lembre-se: Não é saudável sair criando get/set sem necessidade. Crie apenas métodos quando você REALMENTE precisar.

Outra coisa: Não é muito legal (essa é minha opinião) que você use duas classes no mesmo arquivo .java. Eu mantenho o padrão (com pouquissimas exceções) de 1 class por arquivo.

Dito isso, vamos ao seu código!

Primeira classe: Numeros!

CLASSE ORIGINAL:

public class numeros {
    private int[] numeros = new int[]{
            0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
}

Nessa classe você apenas define os números num vetor de inteiros. Como a visibilidade dela é private (imagino que você já saiba o que isso significa! :D), você vai precisar de uma forma de acessar os atributos (no caso, o vetor de inteiros) dela. Isso é, você vai precisar de um cara que diz “Hey! Dentro do atributo numeros existem esses dados aqui!”. Esse cara é o método getter:

public int[] getNumeros() {
    return numeros;
}

Deve bastar. Agora, vamos ao seu segundo arquivo, as duas classes dezenas e gerador

CLASSES ORIGINAIS:

public class dezenas {
    private int[] dezenas = new int[2];
//----------------------------------------------------------------------------------------------------------------

    public void setDezenas(int... dezenas) {
        this.dezenas = dezenas;
    }

    public int[] getDezenas() {
        return this.dezenas;
    }
}

//FAZ TODAS AS COMBINAÇÕES POSSÍVEIS
public class Gerador {

    private void gerador() {
        for (int numero : numeros) {

            dezenas[0] = numero;

            for (int numero1 : numeros) {
                dezenas[1] = numero1;
            }
        }
    }
}

Essa classe nem compila! Nesse método aqui:

private void gerador() {
    for (int numero : numeros) {

        dezenas[0] = numero;

        for (int numero1 : numeros) {
            dezenas[1] = numero1;
        }
    }
}

Você quer usar os números de outra classe. Para isso, você precisa de alguma forma de conseguir acessar aquela classe dentro de outra. Isso é, você precisa de uma referência pra outra classe… uma instanciação. O mesmo deve ser feito com dezena, afinal estão em classes diferentes.

Eu não irei te dar 100 por cento da resposta, mas deixa eu te dar uma ajuda na classe dezenas:

class dezenas {
    private int[] dezenas = new int[10];

    void setDezenas(int numero, int posicao){
        this.dezenas[posicao] = numero;
    }

}

Entendeu? :smiley:

Qualquer dúvida, posta aí. A gente aqui te ajuda a pensar, e esperamos que pense com a gente!

[]'s

1 curtida

Muito obrigado, você é fera. Obrigado mesmo

1 curtida