Pessoal sempre tive esta dúvida sobre OO, será que alguem pode me ajudar por favor?
Vamos la:
Irei colocar o código , mas gostaria de saber como é que funcionar esta passagem por parametro.O java sempre faz uma cópia da referência certo?
//Classe Conta
public void transferenciaDeValores(Conta deposito, double quantidade) {
// retirada do saldo do objeto atual
this.saldo = this.saldo - quantidade;
deposito.saldo = deposito.saldo + quantidade;
System.out.println();
System.out.println(this.saldo);
System.out.println(deposito.saldo);
}
//ClasseMain
package classes;
public class ClassePrincipal {
public static void main(String[] args) {
c1.transferenciaDeValores(c2, 10);
}
}
Sinceramente eu fiz, mas não sei como funciona esta passagem do valor pegando a referencia do objeto Conta;
Quando eu passo a referencia do objeto c2 por parametro ele irá referenciar qual objeto? C1?
Quando o método acabar a referência volta para o objeto t2 ou fica em t1? Nao entendi esta passagem!
Sei que caso eu faça c1==c2 eles iram pegar a mesma referência do objeto , certo? Como diabos funciona esta passagem entao… huahua
abraços pessoal e muito obrigado por toda a ajuda que voces sempre me dam.
Outra dúvida é :
1- quando eu crio um tipo de variavel do tipo classe, ele apenas servira para isto, ou seja, apenas para criar um objeto certo!
2- Sinceramente so sei usar o tipo de variavel do tipo classe quando vo criar um objeto , tirando isto eu me perco ai.
Se puderem me ajuda eu agradeço e muito… Abraços!
[quote=thiagolopes]
Irei colocar o código , mas gostaria de saber como é que funcionar esta passagem por parametro.O java sempre faz uma cópia da referência certo?[/quote]
Não, Java só trabalha com passagem de parâmetros por valores.
[quote=thiagolopes]
Sinceramente eu fiz, mas não sei como funciona esta passagem do valor pegando a referencia do objeto Conta;[/quote]
Você está passando a cópia do valor contido em c2. Este valor é uma referência para o objeto.
[quote=thiagolopes]
Quando eu passo a referencia do objeto c2 por parametro ele irá referenciar qual objeto? C1?[/quote]
depósito referenciará o valor passado por parâmetro, no caso c2.
[quote=thiagolopes]
Quando o método acabar a referência volta para o objeto t2 ou fica em t1? Nao entendi esta passagem![/quote]
Quando um método acaba, ele volta para quem o chamou, neste caso para o método main.
[quote=thiagolopes]
Sei que caso eu faça c1==c2 eles iram pegar a mesma referência do objeto , certo? Como diabos funciona esta passagem entao… huahua
abraços pessoal e muito obrigado por toda a ajuda que voces sempre me dam.[/quote]
c1 == c2 compara o valor de duas variáveis. Se os valores são referências, ele compara referências.
Para atribuir c1 a c2 use c1 = c2;
[quote=thiagolopes]Outra dúvida é :
1- quando eu crio um tipo de variavel do tipo classe, ele apenas servira para isto, ou seja, apenas para criar um objeto certo![/quote]
Variáveis de objetos servem para guardar referências para o objeto. Para criar o objeto use o operador new.
[quote=thiagolopes]
2- Sinceramente so sei usar o tipo de variavel do tipo classe quando vo criar um objeto , tirando isto eu me perco ai.[/quote]
Não tem nada de especial.
Cachorro dog = new Cachorro(); // cria um cachorro
dog.latir(); // chama o método latir de cachorro
dog.pular(3); // chama o método pular passando 3 como argumento
String s = dog.getNome(); // chama o método getNome de cachorro, que retorna uma String, e atribui o valor retornado a s
Não precisa aprender mais que isto.
Hum… interessante! Obrigado por tirar minha dúvida, sempre tive ela , mas ficava com um pouco de receio de perguntar visto que é o básico de OO.
Abraços meu velho.
Parabéns pela ótima resposta …