java中全局变量为什么不能先声明再赋值?

蓝剑客 2012-07-09 12:42:06
java中全局变量为什么不能先声明再赋值?
public clss Test{
int i;
i = 3;
}
为什么这种先声明后赋值是错误?什么机制导致的?
...全文
1085 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝剑客 2012-07-13
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

引用 5 楼 的回复:
引用 4 楼 的回复:
public clss Test{
int i;
{i = 3;}
}
编译还是不能通过啊!

你把clss改成class就能通过了


public class Test{
int i;
{i = 3;}
}

这种代码块优先于构造方法执行,误人子弟啊,他赋值都不会呢,你给他说这么个语法?
[/Quote]嗯嗯,现在接触的多了有点懂了,这个初始化块的东西也大概懂了,非常感谢各位哦
ZhangYongjia_ 2012-07-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
public clss Test{
int i;
{i = 3;}
}
编译还是不能通过啊!

你把clss改成class就能通过了
[/Quote]

public class Test{
int i;
{i = 3;}
}

这种代码块优先于构造方法执行,误人子弟啊,他赋值都不会呢,你给他说这么个语法?
zhong222xin 2012-07-11
  • 打赏
  • 举报
回复
类里只能是成员和构造方法啊
starwar1963 2012-07-11
  • 打赏
  • 举报
回复
类里面只有成员和方法,不要弄语句,记住就好了,语句是在方法里面的、、、没有什么为什么,这种规定是为了更合理而已
千树之影 2012-07-11
  • 打赏
  • 举报
回复
java没有全局变量这个东东。
黑色价值 2012-07-11
  • 打赏
  • 举报
回复
LZ 定义的好像不是全局变量吧 我记得java的没有全局变量 用public static 定义的变量可以实现全局变量的功能
不知我说的对不??我也是刚学java 在看张孝祥的《java就业培训手册》希望多交流
qybao 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
嗯,可以了,谢谢哈。不过为什么 赋值语句,不能单独出现在方法或{}以外的地方啊?
[/Quote]
这是语法规定,没有为什么
蓝剑客 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
嗯,可以了,谢谢哈。不过为什么 赋值语句,不能单独出现在方法或{}以外的地方啊?
qybao 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
public clss Test{
int i;
{i = 3;}
}
编译还是不能通过啊!
[/Quote]
你把clss改成class就能通过了
我在肖申克 2012-07-10
  • 打赏
  • 举报
回复


引用 6 楼 的回复:
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
嗯,可以了,谢谢哈。不过为什么 赋值语句,不能单独出现在方法或{}以外的地方啊?


[/Quote]
这是和谐社会规定的 你写在花括号外面和谐吗?
-AJ- 2012-07-10
  • 打赏
  • 举报
回复
宝二爷。。。不错!
qybao 2012-07-09
  • 打赏
  • 举报
回复
那是因为 i=3这是赋值语句,不能单独出现在方法或{}以外的地方
改成
public clss Test{
int i;
{i = 3;} //写在{}里就可以了
}
AngelWings 2012-07-09
  • 打赏
  • 举报
回复

public class test {

/**
* @param args
*/
public static void main(String[] args) {


int i;
i = 3;

}

}


这种写法编译是完全通过的,不同的场合赋值的地方也不一样。当这个变量作为一个全局变量使用时,通常是在方法外面声明,方法里面去赋值;如果该变量只是局部使用,一般都是声明赋值同时操作。
蓝剑客 2012-07-09
  • 打赏
  • 举报
回复
public clss Test{
int i;
{i = 3;}
}
编译还是不能通过啊!
c91s1h8 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

那是因为 i=3这是赋值语句,不能单独出现在方法或{}以外的地方
改成
public clss Test{
int i;
{i = 3;} //写在{}里就可以了
}
[/Quote]

学习了

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧