Olá, Nikolas! Por boas práticas, um método deve ter apenas uma função; se ele faz mais de uma coisa, alguma coisa tá errada. Mas você verá isso mais para a frente, já que ainda está vendo 'Java Parte 2'. Não sei como você pretendo utilizar o retorno do método para quem o está chamando, já que deseja retornar dois 'tipos', mas dar pra brincar um pouco. Se você quer o escopo do seu método desse jeito que você escreveu, você muda o retorno para algo mais genérico; e depois faz conversão onde o método for chamado, exemplo:
public Object saca(double valorASerSacado) {
return (this.saldo >= valorASerSacado) ? this.saldo -= valorASerSacado : "voce n tem saldo suficiente";
}
E quem tá chamando poderia fazer algo assim:
Conta conta = new Conta();
conta.setSaldo(10);
Double valorDouble;
String valorString;
//imprimindo o valorDouble
if(conta.saca(5).toString().length() < 4){
valorDoubleDouble.parseDouble(conta.saca(5).toString());
System.out.println(valorDouble);
}else{
valorString = conta.saca(5).toString();
System.out.println(valorString);
}
//imprimindo o valorString
if(conta.saca(15).toString().length() < 4){
valorDoubleDouble.parseDouble(conta.saca(5).toString());
System.out.println(valorDouble);
}else{
valorString = conta.saca(15).toString();
System.out.println(valorString);
}
Ou mudando o escopo e retorno do seu método, que é o que eu aconselho, poderia ficar assim:
public String saca(double valor){
if(this.saldo < valor){
this.saldo -= valor;
return "Saldo insuficiente! ";
}else{
return "Saque realizado com sucesso!";
}
}
Espero ter ajudado!