大虾们,求助关于JAVA的一道菜鸟题目。

class FFrame extends Frame { ArrayList points = null; points = new ArrayList(); FFrame(String s) { …… ……}主类里只有一句代码,就是new这个FFrame类。但是在编译时出现Good.java:15: 需要 <标识符> points = new ArrayList(); ^1 错误但是如果我把 ArrayList points = null; points = new ArrayList();改成ArrayList points = new ArrayList(); 编译时就不报错。或者这样写 class FFrame extends Frame { ArrayList points = null; MyFrame(String s) { super(s); points = new ArrayList(); …… } 也不会报错,为什么啊!!!
2026年09月27日 02:00
有3个网友回答
网友(1):

这个很好解释的,首先你这个是成员变量。或者叫属性
如果你这样写的话ArrayList points = new ArrayList(); 是声明的同时赋值
如果你这样写的话
ArrayList points = null;
points = new ArrayList();

程序会理解成两个变量。。注意是两个变量。所以它会提示你points需要标识符,
不在方法或者构造函数里,是不能直接这样赋值的。

网友(2):

class FFrame extends Frame {
ArrayList points = null;
points = new ArrayList();
FFrame(String s) { 这里+个void应该就不会了
……
……}

网友(3):

points = new ArrayList();
在class的最外层大括号内只允许进行声明 包括成员变量,方法,构造器以及内部类
是不允许进行数据操作的
points = new ArrayList();在这里被认为是声明一个points类型的变量 但是没有输入标识名