Pergunta básica sobre Orientação a objeto

4 respostas
thiagolopes

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.

4 Respostas

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!
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!

B

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?

Não, Java só trabalha com passagem de parâmetros por valores.

thiagolopes:

Sinceramente eu fiz, mas não sei como funciona esta passagem do valor pegando a referencia do objeto Conta;

Você está passando a cópia do valor contido em c2. Este valor é uma referência para o objeto.

thiagolopes:

Quando eu passo a referencia do objeto c2 por parametro ele irá referenciar qual objeto? C1?

depósito referenciará o valor passado por parâmetro, no caso c2.

thiagolopes:

Quando o método acabar a referência volta para o objeto t2 ou fica em t1? Nao entendi esta passagem!

Quando um método acaba, ele volta para quem o chamou, neste caso para o método main.

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.

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;

B

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!


Variáveis de objetos servem para guardar referências para o objeto. Para criar o objeto use o operador new.

thiagolopes:

2- Sinceramente so sei usar o tipo de variavel do tipo classe quando vo criar um objeto , tirando isto eu me perco ai.

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.

thiagolopes

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 …

Criado 16 de dezembro de 2008
Ultima resposta 16 de dez. de 2008
Respostas 4
Participantes 2