Olá pessoal é um prazer poder fazer parte dessa família GUJ, estou iniciando em programação Java, por isso antes de postar minha dúvida preço desculpas antecipada se eu não for claro. Pesquisei sobre o assunto mais não obtive sucesso então resolvi finalmente postar
.
A dúvida é a seguinte: estou utilizando de uma apostila chamada Caelum, em um dos exemplos tive um pequeno problema meu código não condiz com o que é dito na apostila, segue o mesmo abaixo;
public class Programa {
public static void main(String args[]){
Conta c1 = new Conta();
Conta c2 = //Copia a variável c1 que referece ao objeto Conta /""copia sua referência NÃO os atributos""/ (Pelomenos eu acho hahaha)
//Altera os valores de c2
c2.dono = "Robison";
c2.deposita(200);
//Alterando os valores de c1
c1.dono = "Duke";
c1.saldo = 1000.0;
//Sacando c1
c1.saca (200);
//Deposita c1
c1.deposita(500);
System.out.println ("Saldo atual: " + c1.dono + " " + c1.saldo); //mostra o saldo atual de c1
System.out.println ("Saldo atual: " + c2.dono + " " + c2.saldo);
}
}
class Conta {
int numero;
String dono;
double saldo;
double limite;
boolean saca (double valor) {
if (this.saldo < valor) {
return false; //não vai sacar, está sacando mais do que o valor atual
}
else {
this.saldo = this.saldo - valor;
return true;
}
}
void deposita (double quantidade) {
this.saldo += quantidade;
}
boolean transfere (Conta destino, double valor) {
boolean retirou = this.saca (valor);
if (retirou == false) {
return false;
}
else {
destino.deposita (valor);
return true;
}
}
}
Como vocês podem ver é um exemplo de conta bancaria, o problema é que na apostila diz que; para criar uma segunda variável a partir de uma já existente que se refere a um objeto, utiliza-se:
Conta c1 = new Conta();
Conta c2 = c1; //Copia a variável c1 que referece ao objeto Conta /""copia sua referência NÃO os atributos""/ (Pelomenos eu acho hahaha)
Só que quando faço isso é copiado os atributos do objeto c1. Gostaria de saber entendi errado ou estou fazendo alguma coisa errada?
