Pergunta básica sobre Orientação a objeto

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 …