Olá pessoal, sou novo nesse forum e tenho uma dúvida que creio que seja básica.
Primeiramente, preciso ver se entendi direito. Me corrijam se estiver errado, por favor!
Em java, a interação de valores de variáveis entre métodos só pode ser feita através
de getters e setters. Poderiamos associar essa interação com o ponteiro * usado em C.
Exemplo:
dado (na main class)
tem seu valor mudado no method x(get ou set?)
tem que voltar para main class com um valor novo(get ou set?)
e assim ter seu valor mudado no method y(get ou set?)
voltando depois para a main class (get ou set?)
Daí pra frente está tudo meio nebuloso na minha cabeça.
Onde é que eu posso mudar o valor da variável? Em um getter, ou em um setter?
E se eu quiser trocar o valor de mais uma variavel?
Nesse caso, nao faria sentido retornar dois valores. Correto?
É necessário que o method seja int, ou outra coisa? Ele não pode ser void?
E o this.? eu acho que nao entendi direto.
Tenho outras dúvidas também. Como copiar todos os valores dos elementos
de uma array para uma outra expandida (tem um número de elementos “elementos + 1”),
sendo que o último elemento será incializado em seguida?
Aqui está um pedaço do cógigo que escrevi:
Quero interagir as duas arrays de booleans.
public int aaaaa = 2;
public int[] bbbbb = new int[aaaaa];
public int[] ccccc = new int[aaaaa];
public int counter;
public int[] ddddd = new int[aaaaa];
public boolean[] eeeee = new boolean[aaaaa];
private int[] expand(int[] array, int size) {
int[] auxarray = new int[size];
System.arraycopy(array, 0, auxarray, 0, array.length);
\ aqui! como eu posso copiar tudo que tinha na array anterior para a nova?
return auxarray;
}
void reinicialize_array_values () {
for (counter = 0; counter < aaaaa; counter ++) {
ccccc[counter] = 1;
ddddd[counter] = counter;
bbbbb[counter] = counter;
}
}
void create_new_aaaaa () {
aaaaa = aaaaa + 1;
/* expande o numero de elementos de bbbbb && ccccc && ddddd
* arrays para aaaaa + 1 */
ccccc = expand(ccccc, aaaaa);
bbbbb = expand(bbbbb, aaaaa);
ddddd = expand(bbbbb, aaaaa);
// essa parte do codigo é a parte que eu incializo as arrays novas com um elemento a mais.
for (counter = 0; counter < aaaaa; counter ++) {
ddddd[counter] = counter;
}
for (counter = 0; counter < aaaaa; counter ++) {
bbbbb[counter] = counter;
}
for (counter = 0; counter < aaaaa; counter ++) {
ccccc[counter] = 1;
}
// aqui! eu quero saber o que eu tenho que fazer para que ddddd, bbbbb, ccccc, e aaaaa mudem
// na classe principal para que os outros metodos o vejam
}
boolean [] calculate_eeeee (int aaaaa) {
boolean[] aux_eeeee = new boolean[aaaaa];
for (counter = 0; counter < aaaaa; counter ++) {
if (ccccc[counter] == 0) {
aux_eeeee[counter] = false;
}
else {
aux_eeeee[counter] = true;
}
}
for (counter = 0; counter < aaaaa; counter ++) {
if (ddddd[counter] == bbbbb[counter]) {
aux_eeeee[counter] = false;
}
else {
aux_eeeee[counter] = true;
}
}
return aux_eeeee;
}
void show_states() {
eeeee = calculate_eeeee(2);
for (counter = 0; counter < aaaaa; counter ++) {
if (eeeee[counter] == true) {
System.out.print("aaaaa"+ counter +" is enabled\n");
}
if (eeeee[counter] == false) {
System.out.print("aaaaa "+ counter +" is disabled\n");
}
}
}