fiz dessa forma, acho que dar para separar em dois arquivos(um contendo as funções e um outro arquivo principal que chama essas funções e também executa).
aprendi muitas coisas pesquisando.
import java.text.NumberFormat;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Projeto {
public static String exibir(int qtd) {
String resultado = "*".repeat(qtd);
return resultado;
}
public static void exibirTitulos(String mensagem) {
System.out.println(mensagem);
}
public static String fomartacaoSaldo(double saldo) {
NumberFormat saldoFormatado = NumberFormat.getCurrencyInstance();
return saldoFormatado.format(saldo);
}
public static void exibirDadosClientes(String nome, String tipo, String saldoInicial) {
exibirTitulos("Dados iniciais do cliente: ");
System.out.println("\n");
System.out.printf("Nome: %32s%n", nome);
System.out.printf("Tipo conta: %15s%n", tipo);
System.out.printf("Saldo inicial: %15s%n", saldoInicial);
}
public static void exibirOperacoes(String opcao1, String opcao2, String opcao3, String opcao4) {
exibirTitulos("\nOperações");
System.out.println('\n');
System.out.println(opcao1);
System.out.println(opcao2);
System.out.println(opcao3);
System.out.println(opcao4);
}
public static void consultarSaldo(String saldo) {
System.out.println(saldo);
}
public static double receberValor(double saldo, double valorRecebido) {
return (saldo + valorRecebido);
}
public static double tranferirValor(double saldo, double valorRetirado) {
return saldo - valorRetirado;
}
public static void main(String[] args) {
String estilo = exibir(47);
double saldoAtual = 2500;
String saldoFormatado = fomartacaoSaldo(saldoAtual);
double valorRecebido;
double valorRetirado;
int opcao;
System.out.printf("%s%n", estilo);
exibirDadosClientes("Jacqueline Oliveira", "Corrente", saldoFormatado);
System.out.println("\n" + estilo);
Scanner Projeto = new Scanner(System.in);
while (true) {
exibirOperacoes("1- Consultar saldos", "2- Receber valor", "3- Tranferir valor", "4- sair");
System.out.println("\nDigite a opção desejada: ");
try {
opcao = Projeto.nextInt();
if (opcao < 0 | opcao > 4) {
System.out.println("Opção inválida!");
}
if (opcao == 1) {
String saldoParaExibir=fomartacaoSaldo(saldoAtual);
consultarSaldo(saldoParaExibir);
} else if (opcao == 2) {
System.out.println("Informe o valor a receber: ");
valorRecebido = Projeto.nextDouble();
saldoAtual = receberValor(saldoAtual, valorRecebido);
System.out.println("Saldo atualizado R$ " + saldoAtual);
} else if (opcao == 3) {
System.out.println("Informe o valor a ser retirado: ");
valorRetirado = Projeto.nextDouble();
if (valorRetirado > saldoAtual) {
System.out.println("Não há saldo suficiente para essa transferência!");
} else {
saldoAtual = tranferirValor(saldoAtual, valorRetirado);
System.out.println("Saldo atualizado R$ " + saldoAtual);
}
} else if (opcao == 4) {
System.out.println("Encerrando o programa...");
Projeto.close(); // Fecha o recurso
System.exit(0); // Encerra a execução
}
}catch (InputMismatchException e){
System.out.println("Digite um número inteiro!");
Projeto.nextLine();
}
}
}
}