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
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…
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.
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…
^???
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
[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]
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;