站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题简单的问题,望大家帮忙

简单的问题,望大家帮忙

摘要: 简单的问题,望大家帮忙


class Square
{
private double border;

public Square()
{
this(border); //这里出错
}

public Square(double border)
{
System.out.println(border);
}
}

为什么会出现错误?
Cannot refer to an instance field border while explicitly invoking a constructor
border不是初始化了才执行构造函数的吗?


private double border;换成static则可以~


有人知道为什么吗?


?????????????
不是很难吧?我已经缩减了一些代码的了!


通过无参构造函数初始化成员变量

这个得先调用父类的构造方法才能对border初始化

而父类的构造函数是子类构造函数的第一条语句

而你现在是this 引用是第一句,那是错误的

而用static成员变量在引用之前就已经存在

不用对其初始化就可以引用,

所以这个时候的this引用就可以作为子类的构造函数的第一条语句





- Cannot refer to 'this' nor 'super' while explicitly invoking a
constructor
- Cannot refer to an instance field border while explicitly invoking a
constructor


↑返回目录
前一篇: [新手问题] 关于equals方法
后一篇: 刚开始学JAVA,请大家指点