我在读一本书中的接口,我遇到了这行让我感到困惑。
接口在语法上类似于类,但它们缺少实例变量。
据我所知Interfaces
,我们可以在默认情况下在接口内定义变量final
。
我的问题是,这是什么Line
意思?Instance Variable
和和有什么区别Variable defined in the Interface
??
我在读一本书中的接口,我遇到了这行让我感到困惑。
接口在语法上类似于类,但它们缺少实例变量。
据我所知Interfaces
,我们可以在默认情况下在接口内定义变量final
。
我的问题是,这是什么Line
意思?Instance Variable
和和有什么区别Variable defined in the Interface
??
我的问题是,那条线是什么意思?
除其他外,这意味着该书的术语已关闭。“实例变量”的意思是“实例字段”。
实例字段是特定于类的单个实例的字段。例如:
class Foo {
// Instance field:
private int bar;
// Static field:
public static final int staticBar;
}
该字段bar
是每个实例的,而不是类范围的。该字段staticBar
是类范围的(静态字段,有时称为“类字段”)。
接口没有实例字段。他们确实有静态字段。当你这样做时:
interface FooInterface {
int staticBar;
}
staticBar
自动声明public
, static
, 和final
(根据 JLS §9.3 )。所以这staticBar
大致相当于我们Foo
班上的那个。
这意味着您不能根据JLS在接口中拥有实例变量,而是一个常量静态最终变量。例如
interface MyIface {
public static final int MY_CONSTANT = 1;
}
并使用如下接口名称访问它:
int variable = MyIface.MY_CONSTANT;