1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java 常量接口_java接口定义常量研究

java 常量接口_java接口定义常量研究

时间:2024-01-02 00:25:21

相关推荐

java 常量接口_java接口定义常量研究

背景

和同事讨论到,在接口中定义常量的问题,引发了争论,即,假如在接口中定义变量,是否需要用static来限定的问题,或者说用static和不用static会有什么区别。

引论

package spring.interfaceTest;

public interface IAnimal {

//定义成静态变量

public static int num = 10;

//定义成非静态变量

public int num2=20;

}

即上述的常量定义,到底哪个是正确的。

接口的定义

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

引用某位学者定义,interface即标准;即interface用于定义一个通用行的标准,因而interface并不会为某个特殊的类进行定义接口或者变量。那么interface是没有成员变量的,即interface定义的变量针对所有类均生效,因此变量是static的。

所以上面的定义,public static int num = 10;和public int num = 10;是等价的。

讨论1

interface的public是否必须?声明成private会怎么样?

如上面描述,interface是标准,标准是给别人用的,定义成private是没有意义的。所以interface默认就是public。

因此

private void saying();

定义这么个方法,直接编译器会报错的。

讨论2

是否可以嵌套定义内部接口

public interface IAnimal {

interface data{

int num1=1;

int num2=2;

};

}

调用

@Test

public void testDog(){

System.out.println(IAnimal.data.num1);

}

经过验证可以使用,参参照标准的定义,不难理解,只是标准嵌套标准而已,在大标准下有一个小标准。

讨论3

类里是否可以定义接口?

同理可得,将接口如果定义在类里面,也是具有同样的作用,相当于一个类持有了一个标准,那么整个类的实例都将持有这个标准。

package spring.interfaceTest;

public class Dog {

interface data{

int num1=1;

int num2=2;

};

}

同理可以使用

总结

interface作为一种标准,本身就是static,为所有类共同使用,因此不存在归属interface本身或者单独为某个类定义的变量或者方法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。