Ajuda em exercicio, Variável Referência. [Resolvido]

14 respostas
geekcom

Bom dia pessoal, sou novo em Java, fiz um exercicio sobre variavéis de referência e não consigo compilar o código, gostaria de pedir a ajuda dos colegas do fórum no sentido de me ajudarem a identificar o erro e qual seria a variável de referência no código:

/**
*@author Daniel Rodrigues
*Exercicio sobre variável de referência.
*/

public class TesteConta  
{
	public static void main(String args[])
	{
	
   	Conta conta1 = new Conta();	
	conta1.titular = new String("José Zé");
	conta1.numero = 01;
	conta1.saldo = 100.00;
	System.out.println(conta1);    //Mostra Endereço da variavel na memória.
	System.out.println("Titular:" + conta1.titular);
	System.out.println("Conta:" + conta1.numero); 
	System.out.println("Saldo Disponível:" + conta1.saldo);
	
	Conta conta2 = new Conta();
	conta2.titular = new String("Maria Silva");
	conta2.numero = 02;
	conta2.saldo = 200.00;
	System.out.println(Conta2);    //Mostra Endereço da variavel na memória.
	System.out.println("Titular" + conta2.titular);
	System.out.println("Conta:" + conta2.numero);
	System.out.println("Saldo Disponível:" + conta2.saldo);
	}
}

14 Respostas

JorjaoCorreia

geekcom, qual erro está sendo exibido?

conta1.titular = new String("José Zé");

Nesta parte do código não é necessário popular o atributo titular com um new String, se o valor é String, basta passar o mesmo entre aspas(" ").

geekcom

Boa tarde JorjaoCorreia, eu fiz isso abaxo para servir de referência para min mesmo pois aindo sou iniciante:

conta1.titular = new String("José Zé");

então o erro que acontece é o seguinte:

cannot find symbol
Conta conta1 = new Conta();

… e não compila meu código, não consigo identificar o erro de jeito nenhum.

JorjaoCorreia

Vc está usando alguma IDE ou está usando o compilador java mesmo?

Sua classe Conta está no mesmo documento que a classe TestaConta?

geekcom

JorjaoCorreia:
Vc está usando alguma IDE ou está usando o compilador java mesmo?

Sua classe Conta está no mesmo documento que a classe TestaConta?

Estou usando o bloco de notas e o javac mesmo, tento compilar --> TesteConta.java

JorjaoCorreia

Certo, vc criou um documento pra classe Conta e um pra classe TestaConta ou colocou as duas classes no mesmo documento .java?

Se criou 2 classes compile primeiro a classe Conta.java depois a classe TestaConta.java, feito isto execute a classe TestaConta. Exemplo:

javac Conta.java
javac TestaConta.java

Em seguida:

java TestaConta

Veja se assim vai dar certo.

JorjaoCorreia

Se não der certo posta a classe Conta aqui pra darmos uma olhada, blz?

geekcom

JorjaoCorreia:
Certo, vc criou um documento pra classe Conta e um pra classe TestaConta ou colocou as duas classes no mesmo documento .java?

Se criou 2 classes compile primeiro a classe Conta.java depois a classe TestaConta.java, feito isto execute a classe TestaConta. Exemplo:

javac Conta.java
javac TestaConta.java

Em seguida:

java TestaConta

Veja se assim vai dar certo.

Criei um documento só TesteConta.java, e usei javac TesteConta.java
e o código é esse ai, que estranho isso cara.

JorjaoCorreia

Mas e a sua classe Conta.java? Ali vc colocou a classe TestaConta.java, coloca a classe Conta.java pra ver se tem algum erro nela.

Vc criou a classe Conta.java né?

geekcom

JorjaoCorreia:
Mas e a sua classe Conta.java? Ali vc colocou a classe TestaConta.java, coloca a classe Conta.java pra ver se tem algum erro nela.

Vc criou a classe Conta.java né?

Não criei não, foi isso que eu não tava entendendo tem relação com a variavel de referencia Conta?, então eu crio uma classe conta e compilo? e depois executo qual .class?

JorjaoCorreia

Sim. Quando vc cria o código Conta conta = new Conta() vc está instanciando a classe conta, ou seja, criando um Objeto da classe conta, se a classe Conta não existe, não ha como instancia-la, por isto não está conseguindo compilar seu código, vc deve criar a classe conta da seguinte maneira:

class Conta {

String titular;

int numero;

double saldo;

}

Estes foram os atributados da classe que eu vi ali no código que vc passou como exemplo, se existem outros atributos, basta inclui-los na classe Conta.

Para estudar, te recomendo a apostila FJ11 da Caelum, ela explica bem estes conceitos.

JorjaoCorreia

Um exemplo pra vc intender melhor:

class Carro {
	String cor;
	String modelo;
	double velocidadeAtual;
	double velocidadeNova;
	
	void liga() {
		System.out.println("O carro esta ligado!");
	}
	
	void acelera(double quantidade) {
		this.velocidadeAtual += quantidade;		
	}	
}

class TestaCarro {
	public static void main (String args[]) {
		Carro carro;
		carro = new Carro();
		
		carro.liga();
	}
}

Ao compilar a classe, o javac vai gerar 2 arquivos .class, o Carro.class e o TestaCarro.class,
vc executa a classe TestaCarro, porque é nela que está o método Main, intende?

java TestaCarro

geekcom

JorjaoCorreia:
Sim. Quando vc cria o código Conta conta = new Conta() vc está instanciando a classe conta, ou seja, criando um Objeto da classe conta, se a classe Conta não existe, não ha como instancia-la, por isto não está conseguindo compilar seu código, vc deve criar a classe conta da seguinte maneira:

class Conta {

String titular;

int numero;

double saldo;

}

Estes foram os atributados da classe que eu vi ali no código que vc passou como exemplo, se existem outros atributos, basta inclui-los na classe Conta.

Para estudar, te recomendo a apostila FJ11 da Caelum, ela explica bem estes conceitos.

Muito obrigado cara, entendi agora os conceitos de variavel de instancia, voce me deu uma luz, thanks brother.

JorjaoCorreia

Opa, por nada. Só edita o título do tópico, coloca [RESOLVIDO] no fim dele, blz?

geekcom

JorjaoCorreia:
Opa, por nada. Só edita o título do tópico, coloca [RESOLVIDO] no fim dele, blz?

Beleza. :smiley:

Criado 2 de setembro de 2012
Ultima resposta 2 de set. de 2012
Respostas 14
Participantes 2