Error calling a class method inside the main

0

I'm trying to call a method in main , however the class does not allow me to do it. The error appears:

  

"Can not Make aStiatic References to the non-static method"

I have the class Gerenciamento , where the method is contained:

public class Gerenciamento {

public double totalCaixa;

private ArrayList<Bicicleta> bicicletas = new ArrayList<Bicicleta>();


Scanner leitor = new Scanner(System.in);

public void cadastrarBicicleta()
{
    String cor = null, marca = null, modelo = null, acessorio = null;
    int numIdBici = (bicicletas.size());
    boolean ok = false;

    System.out.print("\n----- Cadastro de Bicicleta -----\n\nInsira cor: ");
    do {
        try {
            cor = leitor.nextLine();
        } catch (Exception x) {
            ok = true;
        }
    } while (ok == true);

    System.out.print("\nInsira marca: ");
    do {
        try {
            marca = leitor.nextLine();
        } catch (Exception x) {
            ok = true;
        }
    } while (ok == true);

    System.out.print("\nInsira modelo: ");
    do {
        try {
            modelo = leitor.nextLine();
        } catch (Exception x) {
            ok = true;
        }
    } while (ok == true);

    System.out.print("\nInsira acessorios: ");
    do {
        try {
            acessorio = leitor.nextLine();
        } catch (Exception x) {
            ok = true;
        }
    } while (ok == true);

    boolean disponivel = true;
    bicicletas.add(new Bicicleta (numIdBici,cor, marca, modelo, acessorio, disponivel));
    numIdBici = (bicicletas.size());
    System.out.println("\n##### Bicicleta criada com sucesso! #####");
}

And I have main, where I can not call the method

public class TesteCicloTurismo extends Gerenciamento
{

    public static void main(String[] args)
    {
        Scanner leitor = new Scanner(System.in);
        int opcao;
        do
        {

            switch(opcao)
            {
            case 1:
                cadastrarBicicleta();//metodo nao pode ser chamado aqui
                break;
}
}
    
asked by anonymous 14.07.2017 / 03:02

1 answer

0

You are trying to call an instance method within main , which is static. The method will only exist when there is an instance of Gerenciamento or class TesteCicloTurismo .

Adapting to your code:

public class TesteCicloTurismo extends Gerenciamento
{
    public static void main(String[] args)
    {
        TesteCicloTurismo teste = new TesteCicloTurismo();
        Scanner leitor = new Scanner(System.in);
        int opcao;
        do
        {

            switch(opcao)
            {
            case 1:
                teste.cadastrarBicicleta();//metodo nao pode ser chamado aqui
                break;
            }
      }
}
    
14.07.2017 / 03:05