Resolvendo/entendendo Classes e Métodos [resolvido]

Ola pessoal.

O que tem de errado nestes dois códigos? Pelo que entendi até agora, eles se relacionam, correto?

Segue os cod e o erro do compilador:

[code]class Conta {

	int numero;
	String dono;
	double saldo;
	double limite;

	new Conta ();
	Conta minhaConta;
	Conta minhaConta;
	minhaConta = new Conta ();
}

}[/code]

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

	Conta minhaConta;
	minhaConta = new Conta();
	
		minhaConta.dono = "Duke";
		minhaConta.saldo = 1000.0;
		
		minhaConta.saca (200);
		minhaConta.deposita (500);
		
	System.out.println (minhaConta.saldo);
	System.out.println ("Saldo Atual: " + minhaConta);
}

}
[/code]

Erro compilando Conta.java

Microsoft Windows [versão 6.1.7601]
Copyright © 2009 Microsoft Corporation. Todos os direitos reservados.

C:\Users\Guilherme Lessa>cd desktop

C:\Users\Guilherme Lessa\Desktop>javac Conta.java
Conta.java:8: illegal start of type
new Conta ();
^
Conta.java:8: ‘;’ expected
new Conta ();
^
Conta.java:8: illegal start of type
new Conta ();
^
Conta.java:8: expected
new Conta ();
^
Conta.java:11: expected
minhaConta = new Conta ();
^
Conta.java:13: class, interface, or enum expected
}→
^
6 errors

C:\Users\Guilherme Lessa\Desktop>

Erro compilando Programa.java

Microsoft Windows [versão 6.1.7601]
Copyright © 2009 Microsoft Corporation. Todos os direitos reservados.

C:\Users\Guilherme Lessa>cd desktop

C:\Users\Guilherme Lessa\Desktop>javac Programa.java
.\Conta.java:8: illegal start of type
new Conta ();
^
.\Conta.java:8: ‘;’ expected
new Conta ();
^
.\Conta.java:8: illegal start of type
new Conta ();
^
.\Conta.java:8: expected
new Conta ();
^
.\Conta.java:11: expected
minhaConta = new Conta ();
^
.\Conta.java:13: class, interface, or enum expected
}→
^
.\Conta.java:10: minhaConta is already defined in Conta
Conta minhaConta;
^
.\Conta.java:11: cannot find symbol
symbol : class minhaConta
location: class Conta
minhaConta = new Conta ();
^
Programa.java:10: cannot find symbol
symbol : method saca(int)
location: class Conta
minhaConta.saca (200);
^
Programa.java:11: cannot find symbol
symbol : method deposita(int)
location: class Conta
minhaConta.deposita (500);
^
10 errors

C:\Users\Guilherme Lessa\Desktop>

Vamos la, agradeço as respostas…

A sintaxe da classe conta está completamente errada, principalmente da parte após a declaração dos atributos (a partir daquele new ali).

[code]class Conta {
//Isso são atributos. “Variáveis” que sua classe tem.
int numero;
String dono;
double saldo;
double limite;

//Aqui viriam as “funções” da sua classe, ou seja, as ações que uma conta é capaz de desempenhar.
//Mas vc não declara nenhum corpo. O new também não é usado aqui.
new Conta ();
Conta minhaConta;
Conta minhaConta;
minhaConta = new Conta ();
}
}[/code]

Uma forma melhor seria:

[code]public class Conta {
private int numero;
private String dono;
private double saldo;
private double limite;

//Cria uma nova conta. É necessário informar o número, dono e limite.
public Conta(int numero, String dono, double limite) {
this.numero = numero;
this.dono = dono;
this.saldo = 0;
this.limite = limite;
}

public int getNumero() {
return numero;
}

public String getDono() {
return dono;
}

public double getSaldo() {
return saldo;
}

public double getLimite() {
return limite;
}

public void sacar(double valor) {
if (saldo + limite - valor < 0)
throw new IllegalArgumentException(“Sem fundos.”);
}
saldo -= valor;
}

public void depositar(double valor) {
saldo += valor;
}
}[/code]

E aí sim, vc poderia usar assim:

public class Programa { public static void main(String[] args) { Conta conta = new Conta(1234, "Guilherme Lessa", 1000); conta.depositar(1000); conta.sacar(500); System.out.printf("O seu saldo é: %.2f.%n", conta.getSaldo()); } }

Você tá tentando executar algoritmos dentro de corpo de classes, e isso acontece em métodos.

Se quiser da uma olhada nas minhas vídeo aulas

Dê uma olhada sobre, construtores, instância e metodos getter’s e setter’s, com estes conceitos você já consegue fazer este código rodar.

:idea:

Beleza, gostei da resposta do Godoy, agora tenho que sair, quando chegar vou estudar esse código la, entender ele e ver o q eu errei.

Agradeço mais respostas. Valeu.

Então, o código do Godoy rodou legal.

Mas então, vou continuar mais algumas páginas, e trabalhar com esse código, ai então se nada ocorrer fecho o tópico.
Obrigado mais uma vez ai pelo pessoal, fórum ta de parabéns!

[b][color=green]Tb estou acompanhando a apostila da Caelum, e na apostila rodaria de boa só com esse codigo.

class Conta {

public static void main (String [] args) {
	
		Conta minhaConta;
		minhaConta = new Conta ();
	
		minhaConta.dono = "Leo";
		minhaConta.saldo = 5000.0;
		
		System.out.println("Saldo: " + minhaConta.saldo);
	
	
}

} [/color][/b]