Я думал, что следующий фрагмент кода может быть запущен.
public class Stack {
int n;
char arr[]=new char[n];
int top=0;
void Push(char val) {
arr[top]=val;
top++;
}
}
class Solution {
public static void main(String[] args) {
Stack obj=new Stack();
obj.n=5;
obj.Push('a');
obj.Push('a');
obj.Push('a');
obj.Push('a');
}
}
Однако это дает ArrayOutOfBoundsException
. Почему размер массива не меняется на 5?