Fala moçada! Esse é meu primeiro post aki.
Já li alguns tópicos sobre o assunto, mas não consegui resolver meu problema. O código reduzido é o seguinte:
import javax.swing.JOptionPane;
public class AFN {
String palavra;
char valor;
AFN afn;
public AFN()
{
afn = new AFN();
}
public void q0(char valor, String palavra, int i)
{
if(valor == '0')
{
//vai para q1
i++;
valor = palavra.charAt(i);
afn.q1(valor, palavra, i);
}
else
{
//vai para q5;
afn.q5(valor, palavra, i);
}
}
public void q1(char valor, String palavra, int i)
{
if(valor == '0')
{
//vai para q2
i++;
valor = palavra.charAt(i);
afn.q2(valor, palavra, i);
}
else
{
//vai para q0
afn.q0(valor, palavra, i);
}
}
public void q2(char valor, String palavra, int i)
{
if(valor == '1')
{
//vai para q3
i++;
valor = palavra.charAt(i);
afn.q3(valor, palavra, i);
}
else
{
//vai para q2
afn.q2(valor, palavra, i);
}
}
public static void main (String[] args)
{
String palavra;
char valor;
AFN afn = new AFN();
palavra = JOptionPane.showInputDialog ("Informe a palavra");
int i = 0;
valor = palavra.charAt(i);
afn.q0(valor, palavra, i);
}
}
E o erro gerado é esse:
Exception in thread "main" java.lang.StackOverflowError
at AFN.<init>(AFN.java:11)
at AFN.<init>(AFN.java:11)
at AFN.<init>(AFN.java:11)
at AFN.<init>(AFN.java:11)
Se alguém souber como resolver, agradeço