Estou começando a progamar em java e não sei o que errei neste código

6 respostas
G
class Conta{
	String numero_da_conta;
	double saldo;
	Cliente pessoa = new Cliente();

	boolean saque(double valor){
		if(valor <= saldo){
			this.saldo -= valor;
			return true;
		}else{
			System.out.println("A opercao nao pode ser realizada, voce n pode sacar um valor maior que seu saldo");
			return false;
		}
	}
	
	boolean deposito(double valor){
		this.saldo += valor;
	}

	void mostra(){
		System.out.println("Nome" + this.pessoa.nome);
	}
}


class Cliente{
	String nome;
	String cpf;
	Data data_de_entrada = new Data();

class Data{
	int dia;
	int mes;
	int ano;
	void preenche_data(int dia, int mes, int ano){
		this.dia = dia;
		this.mes = mes;
		this.ano = ano;
	}
	String getformatada(){
		return dia + "/" + mes + "/" + ano;
	}
}

class contas{
	Conta tiago = new Conta();
	tiago.pessoa.nome = "Tiago";

}

Os erros apontados pelo console são esses:

oi.java:47: error:  expected

tiago.pessoa.nome = Tiago;

^

oi.java:49: error: reached end of file while parsing

}

^

2 errors 

6 Respostas

matheus.cirillo

Você está criando uma classe dentro de outra classe.
Creio que esse seja o problema.

M

Vc criou um classe q faz a instância de uma outra classe, ai vc criou uma instância dessa outra classe, creio que vc não pode fazer isso. Tenta colocar as características de “Cliente” dentro da própria classe “Conta”.

M

O construtor não vai funcionar desta forma tente separar cada classe.

L
  1. Falta a chave que fecha a classe Cliente.

  2. Seu método depósito precisa declarar um retorno boolean Ex: `return true;

  3. A instrução tiago.pessoa.nome = "Tiago"; precisa ser colocada dentro de um método ou um construtor. Ex:

    class contas {
    Conta tiago = new Conta();

    public contas() {
     		tiago.pessoa.nome = "Tiago";
     	}
    
     	public void facaAlgo() {
     		tiago.pessoa.nome = "Tiago";
     	}
    
     }
    

Após corrigido seu código deveria ficar mais ou menos assim:

class Conta {
	String numero_da_conta;
	double saldo;
	Cliente pessoa = new Cliente();

	boolean saque(double valor) {
		if (valor <= saldo) {
			this.saldo -= valor;
			return true;
		} else {
			System.out.println("A opercao nao pode ser realizada, voce n pode sacar um valor maior que seu saldo");
			return false;
		}
	}

	boolean deposito(double valor) {
		this.saldo += valor;
		return true;
	}

	void mostra() {
		System.out.println("Nome" + this.pessoa.nome);
	}
}

class Cliente {
	String nome;
	String cpf;
	Data data_de_entrada = new Data();

	class Data {
		int dia;
		int mes;
		int ano;

		void preenche_data(int dia, int mes, int ano) {
			this.dia = dia;
			this.mes = mes;
			this.ano = ano;
		}

		String getformatada() {
			return dia + "/" + mes + "/" + ano;
		}
	}

	class contas {
		Conta tiago = new Conta();

		public contas() {
			tiago.pessoa.nome = "Tiago";
		}

		public void facaAlgo() {
			tiago.pessoa.nome = "Tiago";
		}

	}
}
JulioCesarSF

Ta muito bagunçado isso, começa com coisas mais fáceis para entender.

Tentar mudar para: Cliente com um objeto Conta dentro, depois você troca isso como querer.

Aparentemente você está tentando usar uma inner class. Começa com algo simples para entender o que se passa…

class Cliente{
	String nome;
	Data data = new Data();	
	Conta conta = new Conta();

	Cliente(){ nome = "Tiago"; }

	public String toString(){
		return nome + ";" + conta.toString();
	}
}

class Conta{
	String numero;
	double saldo;	

	Conta(){ numero = "222"; saldo = 1000; }

	public String toString(){
		return numero + ";" + saldo;
	}
}

class Data{
	int dia, mes, ano;		
}

class TesteClasse{
	public static void main(String[] args){
		Cliente cliente = new Cliente();
		System.out.println(cliente.toString());
	}
}
G

Obrigado pela ajuda, consegui resolver meu problema por meio das respostas de vcs

Criado 10 de dezembro de 2016
Ultima resposta 10 de dez. de 2016
Respostas 6
Participantes 6