Passando métodos e parametros para uma classe estática

9 respostas
blima10

Pessoal, estou com dificuldades para passar o método mostra() e os parametros do método valida().
Estes erros acontecem nas linhas 14 e 16 respectivamente.
Por favor alguém pode me ajudar a instânciar esses métodos para essa static class?

Obrigado pela atenção!!!

public class Automato {

    public static void main(String[] args) {
        // TODO code application logic here
        String a = "a";
        String b = "b";

        String palavra = JOptionPane.showInputDialog("Entre com a palavra que deseja validar");
        int tamanho = palavra.length();

        JOptionPane.showMessageDialog(null, "tamanho da palavra:" + tamanho);
        JOptionPane.showMessageDialog(null, "caminho da palavra");

        JOptionPane.showMessageDialog(null, "" + mostra());

        if (valida(tamanho, palavra)) {
            JOptionPane.showMessageDialog(null, "palavra válida");
        }
        JOptionPane.showMessageDialog(null, "palavra Inválida");
    }

    public Automato() {
    }
    static String saida = "";
    Estado atual = new Estado();

    public boolean valida(int tamanho, String palavra) {
        //Estados atual;
        String a = "a";
        String b = "b";

        Estado parada = new Estado();
        boolean bool;

        for (int i = 0; i < tamanho; i++) {
            parada.setQ(i);
            atual = atual.ler(i, palavra.substring(i));

            //fazer o setProx vez apontar para novoestado apos le a||b
            if (i < tamanho - 1) {
                saida += "(q" + atual.getQ() + ") Lendo? " + palavra.substring(i) + " vai --> ";
            }
            saida += "(q" + atual.getQ() + ")";

        }

        return atual.isEstfinal();
    }

    public String mostra() {
        String aux = saida;
        saida = "";
        return aux;

    }
}

9 Respostas

palilo

qual é a mensagem de erro exibida?

blima10

non-static method mostra() cannot be referenced from a static context

Já entendi que ele não referenciar um método não estatico em um contexto estatico.
Não sei como solucionar e preciso muito do retorno desses metodos!

recoma

Ajusta o método como static.

blima10

ja tentei isso, o problema é que apareçe mais erros ainda.
Ai terei que transformar meu programa todo em static.

recoma

faz assim:

Dentro do main vc instancia um objeto:

Automato auto = new Automato();

Depois usa:

auto.mostra(......);
palilo

ow instancia a classe automato

palilo

exatamente como recoma falou

blima10

valeu mano :slight_smile: :slight_smile:

blima10

Cara,
Agora o programa nao acusa mais nenhum erro…
Soh q quando eu coloko pra rodar ocorre um…

Exception in thread “main” java.lang.StackOverflowError
at afd7.Estado.(Automato.java:132)

Criado 16 de outubro de 2008
Ultima resposta 16 de out. de 2008
Respostas 9
Participantes 3