Je ne suis pas sûr de la raison pour laquelle ce code (qui donne un stackoverflow au moment de l'exécution) compile :
import java.io.*;
import java.util.*;
public class StackOverflow {
StackOverflow overflow = new StackOverflow();
public void myCall() {
overflow.myPrint();
}
public static void main(String[] args) {
StackOverflow newStackOverflow = new StackOverflow();
newStackOverflow.myCall();
}
public void myPrint() {
System.out.println("I am confused!");
}
}
La raison pour laquelle je suis confus est que, dans la définition de la classe, j'essaie de créer un objet de la classe que j'essaie de définir. Ne devrait-il pas s'agir d'une erreur de compilation ?