变量不能在方法外赋值吗?

lixiyuyu 2017-03-28 07:12:38
public a{
int i=0;
i=7;

为什么这么写会报错?
...全文
1013 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixiyuyu 2017-04-11
  • 打赏
  • 举报
回复
我知道变量赋值要在方法里,我想知道为什么?
bbjiabcd 2017-04-10
  • 打赏
  • 举报
回复 1

public class a{
    int i=0; //变量定义语句(同时赋初值)
    i=7;    //变量赋值语句
}
变量定义语句可以直接放在类中,这样的变量可以在类的任何实例方法中使用。 变量赋值语句不能直接放在类中,必须放在方法中。
shy372330 2017-04-09
  • 打赏
  • 举报
回复
这个是java语法规定的,你那样写在初始化时候没有意义,i=7只有在进入{}中才能修改。 你可以这样写: public class a{ int i=0;{ i=7; } }
mayiaihuangluo 2017-04-01
  • 打赏
  • 举报
回复
建议楼主多看一下书,多敲一下代码才是王道,这些问题你就算是对着书敲都可以解决啊。。。太辣眼睛了;;这些事格式问题
迷失于风中 2017-04-01
  • 打赏
  • 举报
回复
回去看看书 吧 系统的 学习Java , Java 并不难
码上行动_Light 2017-04-01
  • 打赏
  • 举报
回复
引用 14 楼 u012918361 的回复:

public class Test {
	{
		i = 7;
	}

	static {
		j = 3;
	}

	int i;
	static int j;

	public void a() {
		{
			i = 6;
			j = 5;
		}
	}
}
哥们你搜一下普通代码块、构造代码块、静态代码块。
楼主,看一下这位兄台给的建议,将Java代码的结构缕缕清楚。 或者查一查Class类本身,了解一下类类型,这些简单语句不是随便找个地方就能写的,每个地方都有书写要求。
wamsr1847 2017-03-31
  • 打赏
  • 举报
回复
有返回值,就在句末加return ,没有就要在类名里加void
wordxiao 2017-03-31
  • 打赏
  • 举报
回复
方法的正确格式是: 访问修饰符 返回值类型 方法名(形参){ 方法体; } 本题中,丢了返回值类型以及()。
qq_36282364 2017-03-31
  • 打赏
  • 举报
回复
没有返回值,public 和 a 之间
_jant 2017-03-31
  • 打赏
  • 举报
回复
辣眼睛 这代码
cnxiaowen 2017-03-30
  • 打赏
  • 举报
回复

public class Test {
	{
		i = 7;
	}

	static {
		j = 3;
	}

	int i;
	static int j;

	public void a() {
		{
			i = 6;
			j = 5;
		}
	}
}
哥们你搜一下普通代码块、构造代码块、静态代码块。
qq609737607 2017-03-30
  • 打赏
  • 举报
回复
你写的是什么 构造器吗 构造器的话少void 方法的话没有小括号和void 或者数据的类型
低调滴开发 2017-03-30
  • 打赏
  • 举报
回复
你写得不是方法,也不是类
cnxiaowen 2017-03-29
  • 打赏
  • 举报
回复
小括号和返回标识都没有,你说是方法?
qq_33923842 2017-03-29
  • 打赏
  • 举报
回复
类的实例域可以对变量进行声明或初始化,如你所写:int i=0;对变量赋值应该放在方法或者构造器中。至于为什么要这样,得请高手说一下类的内部机制了。
lixiyuyu 2017-03-29
  • 打赏
  • 举报
回复
写错了,应该是
public class a{
int i=0;
i=7;

a是一个类
作现 2017-03-29
  • 打赏
  • 举报
回复
楼上说的对 ,你这写的什么都不是啊
菜 头 2017-03-29
  • 打赏
  • 举报
回复
你这个是类?少了class呀 你这个是方法?少了返回类型和括号
dracularking 2017-03-29
  • 打赏
  • 举报
回复
直接这样是不可以的,这是java语法所规定的 可以通过instance initializer来初始化 { i = 7; }
田地里的蚂蚁 2017-03-29
  • 打赏
  • 举报
回复
成员变量不能在类体中先声明(定义)后赋值,但静态变量可以先在类体中声明,然后在方法中赋值(当然实例变量是不行的),实例变量要经过初始化后赋值
加载更多回复(4)

62,628

社区成员

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

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