Pessoal, estou tendo dificuldade para chamar um array na classe principal quando eu encapsulo os atributos, por exemplo sem encapsular da certo, ex:
public class Teste{
String[] array = new String[3]
array[0] = "1";
array[1] = "2";
array[2] = "3";
}
Quando eu instancio na classe principal eu instancio o objeto e seleciono a posição do vetor que quero acessar, ex:
public static void main(String[] args) {
Teste vetor = new Teste();
System.out.println(vetor.array[0]);
}
porem se encapsular os dados eu não posso acessar o atributo livremente, e nos métodos get e setter eu não consigo escolher a posição do vetor que quero acessar, pois eu chamaria o vetor desta forma:
System.out.println(vetor.getArray());
então onde que eu coloco a posição [0],[1],[2]? já tentei de todo jeito desde ontem e ainda não consegui acertar
Olá Davi,
Você pode chamar desta maneira: vetor.getArray()[0];
Poste o resultado.
não deu certo…
tentei setar o valor da array:
vetor.setArray(“testando”)[0];
vou postar todo o código que usei tbm…
public class Teste {
private String[] array = new String[3];
public String[] getArray() {
return array;
}
public void setArray(String[] array) {
this.array = array;
}
}
public static void main(String[] args) {
Teste vetor = new Teste();
vetor.setArray(“testando”)[0];
}
}
Nesse caso, o set serve para setar o Array e não o elemento contido nele.
Sendo assim, você setará da seguinte maneira:
Teste vetor = new Teste();
vetor.getArray()[0] = "teste";
Imprimindo o valor "teste":
System.out.println(vetor.getArray()[0]);
Deu certo, muito obrigado. Porém eu queria compreender melhor este conceito, vc disse que com o set eu estaria setando o array, setando oque nele? já que eu não estou alterando os elementos dele
Você estaria setando um array na sua variável array.
Teste vetor = new Teste(); // Vetor é uma classe, que dentro contém um array chamado array.
Usar vetor.setArray(); você estaria setando um array para ser o array da classe teste que se chama array.
Exemplo:
String[] array2 = new String[3];
vetor.setArray(array2);
Agora o array da classe teste é igual ao array2 que você criou no main.