Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Fiz de outra forma e tive novas dúvidas

Tentei fazer dessa forma e tive algumas dúvidas. Imagino que algumas delas devem ser sanadas ao longo do curso kkk.

Dúvida 1 - Acerca de métodos static e non-static

2- Da necessidade de criar uma instância de banco para meu código funcionar

Perdão se estou me adiantando, consegui fazer pesquisando, mas me deparei com algumas coisas que ainda não sabia.

import java.util.Scanner;

public class Banco {
    private double userSaldo;

    public static void main(String[] args) {
        Banco banco = new Banco();  // Create an instance of the Banco class
        banco.start();  // Call the start method
    }

    public void start() {
        Scanner scanner = new Scanner(System.in);

        // Input user details
        System.out.println("Digite seu nome:");
        String userNome = scanner.nextLine();

        System.out.println("Digite o tipo de conta:");
        String userConta = scanner.nextLine();

        System.out.println("Digite seu saldo atual:");
        userSaldo = scanner.nextDouble();

        // Display initial user information
        System.out.println("Dados iniciais do cliente:");
        System.out.println("Nome: " + userNome);
        System.out.println("Tipo de conta: " + userConta);
        System.out.println("Saldo inicial: R$ " + userSaldo);
        System.out.println("***********************");

        int opcao;
        do {
            // Display menu options
            System.out.println("Menu de Opções:");
            System.out.println("1- Consultar Saldos");
            System.out.println("2- Receber Valor");
            System.out.println("3- Transferir Valor");
            System.out.println("4- Sair");
            System.out.println(" ");
            System.out.println("Escolha a opção desejada:");

            // Get user choice
            opcao = scanner.nextInt();

            switch (opcao) {
                case 1:
                    consultarSaldo();
                    break;
                case 2:
                    receberValor();
                    break;
                case 3:
                    transferirValor();
                    break;
                default:
                    System.out.println("Opção inválida. Tente novamente.");
            }
        } while (opcao != 4);

        // Close the scanner
        scanner.close();
    }

    public void consultarSaldo() {
        System.out.println("Saldo atual: R$: " + userSaldo);
    }

    public void receberValor() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Digite o valor a ser recebido: ");
        double valorRecebido = scanner.nextDouble();
        userSaldo += valorRecebido;
    }

    public void transferirValor() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Digite o valor a ser transferido: ");
        double valorTransferido = scanner.nextFloat();
            if (valorTransferido > userSaldo) {
                System.out.println("Valor maior do que você possui!");
            } else {
                userSaldo -= valorTransferido;
            }
    }
}
2 respostas
solução!

Oi Carlos, tudo bem?

Dúvida 1 - Acerca de métodos static e non-static: Os métodos static são métodos da classe, ou seja, você pode chamá-los diretamente sem precisar criar uma instância da classe. Já os métodos non-static pertencem a uma instância específica da classe e precisam ser chamados através dessa instância.

No seu código, o método main é static porque é o ponto de entrada do programa e é chamado diretamente pela JVM. Já os métodos start, consultarSaldo, receberValor e transferirValor são non-static porque pertencem a uma instância específica da classe Banco.

Dúvida 2 - Da necessidade de criar uma instância de banco: No seu código, você está criando uma instância da classe Banco no método main com a linha Banco banco = new Banco();. Essa instância é necessária para que você possa chamar os métodos non-static da classe, como o método start.

Sem a criação dessa instância, você não teria acesso aos métodos non-static e o código não funcionaria corretamente.

Espero ter esclarecido te ajudado.

Um abraço e bons estudos.

Mt obrigado pela ajuda Lorena! =)) Abraços!