O erro informa que o modificador “protected” não é permitido e somente o modificador “final” é permitido.
Perguntas:
é por que o atributo x tem escopo de método?
Eu testei e nem public é permitido colocar.
Uma pergunta curiosa: como há uma classe criada dentro de outra classe, como é o comportamento dentro da memória quando se criar um objeto da classe principal?
public class Jail {
private int x = 4;
public static void main(String[] args) {
protected int x = 6; //O erro está nessa linha.
new Jail().new Cell().slam();
}
class Cell {
void slam() {
System.out.println("throw away key " + x);
}
}
}