Contrutores em java

Alguem poderia me ajudar nesse exercicio em java sobre construtores o usuario tem que depositar um valor e depois tem que sacar um valor mas nao to conseguindo mostrar o valor o codigo e esse ai
package Construtores;

import javax.swing.JOptionPane;

public class Exec1 {
public Exec1(){
}
public Exec1(int num,int agencia,String nome,double saldo){
this.num = num;
this.agencia = agencia;
this.nome = nome;
this.saldo = saldo;
}
private int num;
private int agencia;
private String nome;
private double saldo;

public int getNum(){
return num;
}
public void setNum(int num){
this.num = num;
}
public int getAgencia(){
return agencia;
}
public void setAgencia(int agencia){
this.agencia = agencia;
}
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
public double getSaldo(){
return saldo;
}
public void setSaldo(double saldo){
this.saldo = saldo;
}
public void depositar(double valor){
this.setSaldo(this.getSaldo() + valor);
}
public void saque(){
this.setSaldo(this.getSaldo() - this.saldo);
}
public void mostratudo(){
this.saque();
}

public static void main (String [] args){
Exec1 j = new Exec1();

 j.setSaldo(Double.parseDouble(JOptionPane.showInputDialog("Informe o saldo")));
 j.depositar(0);
 JOptionPane.showMessageDialog(null, "Voce depositou : "+j.getSaldo());
 j.setSaldo(Double.parseDouble(JOptionPane.showInputDialog("Quanto quer sacar :")));
 j.saque();
 JOptionPane.showMessageDialog(null, "Saldo:"+j.getSaldo());
 j.mostratudo();
 JOptionPane.showMessageDialog(null, "Saldo:"+j.getSaldo());

}
}

Qual o erro amigo?

Abraços

JOptionPane só aceita String…

Deve ser trabalho de faculdade rsss mas só para voce ter um inicio vai ai um apoio:


import javax.swing.JOptionPane;

public class exec1 {

    public exec1() {
    }

    public exec1(int num, int agencia, String nome, double saldo) {
        this.num = num;
        this.agencia = agencia;
        this.nome = nome;
        this.saldo = saldo;
    }
    private int num;
    private int agencia;
    private String nome;
    private double saldo;

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public int getAgencia() {
        return agencia;
    }

    public void setAgencia(int agencia) {
        this.agencia = agencia;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public double getSaldo() {
        return saldo;
    }

    private void setSaldo(double saldo) {
        this.saldo = saldo;
    }

    public void depositar(double valor) {
        this.setSaldo(this.getSaldo() + valor);
    }

    public void saque(double pValor) {
        if ( getSaldo()-pValor>=0){
            this.setSaldo(this.getSaldo() - pValor);
        }
        else
        {
            JOptionPane.showMessageDialog(null, "Voce nao pode sacar tudo isso ");
        }
    }

    @Override
    public String toString() {
        return "Voce tem disponivel em conta o valor de: " + this.getSaldo();
    }

    public static void main(String[] args) {
        exec1 j = new exec1();
        Double valor;
        valor=(Double.parseDouble(JOptionPane.showInputDialog("Informe o saldo Inicial ")));
        j.depositar(valor);
        JOptionPane.showMessageDialog(null, "Voce depositou : " + valor);
        valor=(Double.parseDouble(JOptionPane.showInputDialog("Quanto quer sacar :")));
        j.saque(valor);
        JOptionPane.showMessageDialog(null, j); // Aqui entra em ação o método toString
    }
}

Valeu mesmo