接口的静态和最终规则
Static and Final Rules of Interface
JAVA中的实例字段到底是什么意思?
据我所知 JAVA :
接口不能包含实例字段。唯一可以出现在接口中的字段必须同时声明为静态和最终。
但是,当我尝试如下时:
interface TempIn
{
TakeInput tv=null;
String name="";
int temp=0;
void printT();
}
它正在运行。如何 ?
困惑...
简单:所有这些字段都是静态的和最终的默认。
因此 java 语言允许您写下隐式给出的内容。
换句话说:想象一下 "compiler" 为您写下关键字。
但我同意,这有点令人困惑。它也变成了 "style" 的东西。在 Java 的早年,很多人会在他们的界面中添加这些冗余关键字。另一方面,"clean code" 告诉我们要 避免 代码中的冗余。现在,像 IntelliJ 这样的 IDE 在使用关键字时甚至会给你 warnings。所以,我的建议:
- 不要碰旧的、现有的代码
- 与您的团队交谈,确定对您有意义的内容,对于新代码,请遵循该协议
JAVA中的实例字段到底是什么意思?
据我所知 JAVA :
接口不能包含实例字段。唯一可以出现在接口中的字段必须同时声明为静态和最终。
但是,当我尝试如下时:
interface TempIn
{
TakeInput tv=null;
String name="";
int temp=0;
void printT();
}
它正在运行。如何 ? 困惑...
简单:所有这些字段都是静态的和最终的默认。
因此 java 语言允许您写下隐式给出的内容。
换句话说:想象一下 "compiler" 为您写下关键字。
但我同意,这有点令人困惑。它也变成了 "style" 的东西。在 Java 的早年,很多人会在他们的界面中添加这些冗余关键字。另一方面,"clean code" 告诉我们要 避免 代码中的冗余。现在,像 IntelliJ 这样的 IDE 在使用关键字时甚至会给你 warnings。所以,我的建议:
- 不要碰旧的、现有的代码
- 与您的团队交谈,确定对您有意义的内容,对于新代码,请遵循该协议