Problemas com "ponteiros"

nao sei se isto é usado em java ou orientação a objetos, mas precisava saber o seguinte:
tenho uma classe A q possui um atributo int.
e essa classe A instancia uma classe B, e passa esse atributo int para a B.
a classe B faz modificações no atributo int.
gostaria q esse atributo sofresse modificacoes na classe A.

Em C eu passaria o endereço do int.

Todas explicações serão bem vindas
muito obrigado pela atenção

Em Java, tudo eh passado por copia (“por valor”, dependendo da traducao).

Explicando [talvez] melhor:

Como cvex, nosso bot, disse, tudo é passado por cópia em java. VOcê recebe uma cópia do que o objeto passa, mas este comportamento é um pouco diferente dependendo do que você está passando.

Uma referência à um objeto é copiada, logo você tem uma segunda referência para o mesmo objeto [mudando a primeira não afeta a segudna, e vice-versa].

Um tipo primitivo é simplesmente copiado. Ou seja, se o valor era 1, você recebe outro 1. Não há referências para tipos primitivos…

Logo: no way :frowning:

[]s

Acho que você se confundiu no parênteses… as duas referências apontam para o mesmo objeto, logo mudando a primeira afeta a segunda.
E é justamente assim que se simula a “passagem por referência”. São duas referências diferentes com o mesmo valor, logo apontando para o mesmo endereço de memória.

blz, jah tinha suspeitado disso
e seu eu usar o objeto Integer???
poderei modifica-lo???

Acho que você se confundiu no parênteses… as duas referências apontam para o mesmo objeto, logo mudando a primeira afeta a segunda.
E é justamente assim que se simula a “passagem por referência”. São duas referências diferentes com o mesmo valor, logo apontando para o mesmo endereço de memória.[/quote]

interessante, quando eu faço um system.print, no objeto A é diferente do objeto B…
^???

Se A e B foram duas referências para o mesmo objeto… é o mesmo objeto :wink:

Acho que é mais fácil você dar um exemplo de código do que você está tentando fazer.

Acho que você se confundiu no parênteses… as duas referências apontam para o mesmo objeto, logo mudando a primeira afeta a segunda.
E é justamente assim que se simula a “passagem por referência”. São duas referências diferentes com o mesmo valor, logo apontando para o mesmo endereço de memória.[/quote]

Exatamente, Bani, mudando a primeira referência não muda a segunda. A referência é o ‘ponteiro’, não o ‘alvo’, logo você pode mudar o lugar para onde ela referencia sem modificar a outra.

Eu entendi o que você quis dizer, eu é que acabei te confundindo com um texto mal-redigido :stuck_out_tongue:

[]s

[quote=“pcalcado”]
Exatamente, Bani, mudando a primeira referência não muda a segunda. A referência é o ‘ponteiro’, não o ‘alvo’, logo você pode mudar o lugar para onde ela referencia sem modificar a outra.[/quote]

Ah tá, agora entendi também :slight_smile:

[quote=“jesus”]blz, jah tinha suspeitado disso
e seu eu usar o objeto Integer???
poderei modifica-lo???[/quote]

Nao, porque Integer eh imutavel. Voce vai ter que retornar o valor pelo metodo mesmo.

Rafael

[quote=“Rafael Steil”]
Nao, porque Integer eh imutavel. Voce vai ter que retornar o valor pelo metodo mesmo.
Rafael[/quote]

ou encapsular esse atributo em uma classe com getter/setter. mas dependendo do caso, eh preferivel devolver o valor mesmo.

vou colocar entao o codigo, e gostaria da ajuda de todos.

public class SGBD
{
private DataBase base;
private Pg_database pgData;
private Pg_type pgType;
private GBP bufferP;
private GBD interGBD;
private GED ged;
private int tamanhoBloco;
private int tamanhoBP;

public SGBD(){
interGBD = new GBD();
pgData = new Pg_database();
pgType = new Pg_type();
ged = new GED();
}
}
minha duvida é a seguinte:
essa classe interGBD é uma simples interface que pega o tamanho do bloco e o tamanho do Buffer Pool.
Entao eu gostaria que depois que o usuario entrasse com esses dados, eles fossem vistos pela minha classe SGBD;