[RESOLVIDO]Operador new em java

[size=18]Bom galera, sou novo no tópico e em Java tambem. Estou com um pequeno problema, não consigo usar o operador new não consigo entender, porque sempre da erro de compilação, veja[/size]:

[code]public class Teste {
    public static void main(String args[]) {


Conta minhaConta;
	
	minhaConta = new Conta();

	minhaConta.dono = "Duke";
	minhaConta.saldo = 1000.0;
	minhaConta.saque = 500;
	
	System.out.println("Saldo atual: " + (minhaConta.saldo-minhaConta.saque));
	
}

}[/code]

Procurei em alguns tópicos e não ficou claro e na apostila não esplica direito, até comprei um livro mas la estava mais confuso ainda, quando explica no livro ele faz um programa com umas 200 linhas e não consigo entender e nem analisar… queria entender melhor esses operadores…
Se alguem puder ajudar de alguma forma agradeço.

Sua classe me parece que esta normal qual erro esta dando?

Cola a classe Conta aqui pra gente ver.

Da esse erro ai ó:

Teste.java:5: error: cannot find symbol
Conta minhaConta;

 symbol:       class Conta
 location:      class Teste

Teste.java:7: error: cannot find symbol
minhaConta = new Conta();

symbol: class Conta
location: class Teste
2errors

Onde está sublinhado é a setinha que indica o erro…
Tenho que criar outra classe e compilar os dois juntos? se for isso o que eu coloco na outra classe?

Posta a classe Conta

Tenho que criar outra classe e compilar as duas juntas?

tentei isso e deu erro:

[code]public class Conta {
public static void main (String args[]) {

String dono;
int saque, saldo;

}
}[/code]

e mesmo assim deu erro…

O problema esta no tipo dos atributos da sua classe Conta.
Voce esta passando um valor que não é aceito para o tipo “int” nesta linha:

minhaConta.saldo = 1000.0;

Quando se trabalha com Dinheiro, o ideia seria voce utilizar o tipo Double e outra coisa para deixar o seu método mais elegante utilize os getter´s e setter´s.

O operador new instancia uma determinada classe.

Tá, não entendi nada…
Você usa new para criar um objeto de uma classe qualquer.

Você pode fazer tudo na mesma classe.
Ex:

//Aqui é declarda a classe conta.
public class Conta {
    // E disse que conta tem dois atributos: dono e saldo.
    // O atributo dono é do tipo String, ou seja, armazena texto.
    public String dono;
    // O atributo saldo é to tipo double, número de ponto flutuante um número com virgula.
    public double saldo;
	
	//Esse é o metodo onde a JVM irá executar.
	public static void main(String[] args) {
		//Aqui foi declarada uma variavel do tipo Conta, com o nome de minhaConta.
		Conta minhaConta;
		//Aqui você instancia a variavel, atribui a ela um objeto do tipo Conta.
		minhaConta = new Conta();
		//Altera o nome do dono para "Duke"
		minhaConta.dono = "Duke";  
		//Altera o saldo para 1000.0
        minhaConta.saldo = 1000.0; 
		
		System.out.println("Dono: "+minhaConta.dono+" Saldo: "+minhaConta.saldo);  
	}
	
}

Ou em dois arquivo separados:
Arquivo Conta.java

public class Conta {
    // E disse que conta tem dois atributos: dono e saldo.
	
	// O atributo dono é do tipo String, ou seja, armazena texto.
    public String dono;
	// O atributo saldo é to tipo double, número de ponto flutuante um número com virgula.
    public double saldo;
	
}

Arquivo Main.java

public class Main {

//Esse é o metodo onde a JVM irá executar.
	public static void main(String[] args) {
		//Aqui foi declarada uma variavel do tipo Conta, com o nome de minhaConta.
		Conta minhaConta;
		//Aqui você instancia a variavel, atribui a ela um objeto do tipo Conta.
		minhaConta = new Conta();
		//Altera o nome do dono para "Duke"
		minhaConta.dono = "Duke";  
		//Altera o saldo para 1000.0
        minhaConta.saldo = 1000.0; 
		
		System.out.println("Dono: "+minhaConta.dono+" Saldo: "+minhaConta.saldo);  
	}

}

Se você estiver usando a linha de comando para compilar e executar, se esses arquivos estiverem no mesmo diretorio não haverá problemas.

Se quiser ler um pouco mais sobre a POO, programação orientada a objeto, em ingles: http://docs.oracle.com/javase/tutorial/java/concepts/object.html

Agora sim!

Obrigado pela ajuda… vou conseguir terminar o exercicio e dar continuidade aos estudos…

A apostila não ensinava a por public antes das variaveis… Nesse caso sempre tenho que usar public antes?

Não, na verdade nesse caso e desaconselhável a por public antes, pois fere o conceito de encapsulamento.

Mas vamos do começo o que public quer dizer?
public é um modificar de acesso, ele diz que aquele variável estará visível para todos, melhor publica a todos.
E foi o que nos fizemos não, Conta.dono = ‘‘nome’’, alteramos diretamente o valor da variável dono através da nossa variável conta.
Mas qualquer parte do código deveria ter acesso direto a isso, não. Por exemplo: A classe que cria uma interface gráfica não precisa ‘saber’ como alterar diretamente os atributos da nossa classe conta, não!
Da mesma maneira que você não tem ideia de funcionamento preciso do funcionamento de um controle de tv, ou tem, não sei, mas sabe que apertando um botão determinada ação é executada.

Você tem acesso a um método, que realiza a operação por debaixo do pano, da mesma forma que no controle você tem um botão.
Não sei se ficou claro… Mas continue com sua apostila que uma hora você ira ver isso.

Public foi apenas para tornar o exemplo mais didático, e o seu problema não era com o public, pois se você retirar o public as classes ainda funcionarão, neste caso.
Eu notei que você esta tendo uma pequena dificuldade com o conceito de orientação a objetos, o que é completamente normal em quem está começando. Então minha sugestão é que estude esses conceitos, normalmente as apostilas vão introduzindo os conceitos pouco a pouco, pois um conceito depende de outro, por isso você talvez ainda não tenha chegado à parte do encapsulamento.

ps: Pelo que eu li, o seu erro foi não ter criado a classe conta, ou criado ela de forma incorreta, ou colocado a classe em outro arquivo ou mais um punhado de opções.

Entendi!

Muito obrigado mesmo pela explicação, foi bem claro!

Vou continuar com a apostila sim! Meu problema é que as vezes tento acelerar as coisas… vou começar ano que vem a faculdade ainda

Abraço.