黑马程序员技术交流社区
标题:
程序运行问题
[打印本页]
作者:
马雨铎
时间:
2011-7-29 11:14
标题:
程序运行问题
package a;
public interface aaa
{
int i = 2;
}
import a.aaa;
public class test
{
public static void main(String[] args)
{
aaa.i = aaa.i + 1;
System.out.println(aaa.i);
}
}
错误提示 aaa.i不能被赋值。 我觉得没错啊! 大侠们 来 给我讲下 详细点 。
作者:
兰海忠
时间:
2011-7-29 11:44
interface 接口中可以有变量(但不能加privave,protected修饰符),但在接口中的的变量本质上是静态(static)的而且是final 的,不管你有没有加 final static关键字。
作者:
匿名
时间:
2011-7-29 12:01
标题:
回复 楼主 的帖子
很简单 接口中的成员默认是常量的。
作者:
匿名
时间:
2011-7-29 12:03
接口中的成员默认是常量
作者:
匿名
时间:
2011-7-29 12:05
对于接口定义的常量属性而言,它们是接口相关的,而且他们只能是常量,所以系统会为这些属性增加static和final修饰符
作者:
匿名
时间:
2011-7-29 12:12
标题:
回复 楼主 的帖子
接口中的成员默认是常量,final的。
作者:
匿名
时间:
2011-7-29 12:15
接口中只有常量和方法的定义,没有变量和方法的实现。楼主,你用两个public运行没报错吗
作者:
匿名
时间:
2011-7-29 13:33
标题:
回复 7 # 的帖子
楼主的两个public当然没报错啊,他的就不是在一个Java文件中写的。
作者:
匿名
时间:
2011-7-29 14:31
在接口中的成员默认的都是static final 型的,而你代码中的(aaa.i = aaa.i + 1)把aaa.i当变量来用那当然出错了
[url]import a.aaa;
public class test
{
public static void main(String[] args)
{
System.out.println(aaa.i + 1);
}
} [/url]
这就可以运行出结果了
作者:
匿名
时间:
2011-7-29 14:33
不好意思,代码没有加好!O(∩_∩)O~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2