java 中的问题,若能全部解释,给30分,若能让人全懂,再加10分
两个java不懂的题目,望解释清楚:classHasStatic{privatestaticintx=100;publicstaticvoidmain(String[]a...
两个java不懂的题目,望解释清楚:
class HasStatic {
private static int x=100;
public static void main(String[] args) {
HasStatic hs1=new HasStatic();
hs1.x++;
HasStatic hs2=new HasStatic();
hs2.x++;
hs1=new HasStatic();
hs1.x++;
HasStatic.x--;
System.out.println("x="+x);
}
}
为什么这个最后的结果为102???
还有:
class StaticStuff {
static int x=10;
static{x+=5;}
public static void main(String[] args) {
System.out.println("x="+x);
}
static {x/=3;}
}
这个题目很难让我这种java初学者懂得!!为什么这么写可以, 不是说变量一般要写到主方法里吗?? 展开
class HasStatic {
private static int x=100;
public static void main(String[] args) {
HasStatic hs1=new HasStatic();
hs1.x++;
HasStatic hs2=new HasStatic();
hs2.x++;
hs1=new HasStatic();
hs1.x++;
HasStatic.x--;
System.out.println("x="+x);
}
}
为什么这个最后的结果为102???
还有:
class StaticStuff {
static int x=10;
static{x+=5;}
public static void main(String[] args) {
System.out.println("x="+x);
}
static {x/=3;}
}
这个题目很难让我这种java初学者懂得!!为什么这么写可以, 不是说变量一般要写到主方法里吗?? 展开
2个回答
展开全部
先给你解答第一个问题
不写在方法里面的变量叫做成员变量,也叫全局变量,定义了成员变量后,在同一个类里的每个方法都可以使用,而不局限在单个方法里,你的这个成员变量是用static修饰的,所以它是一个类变量,类变量资源共享,所以在第一次实例化后x+1后x=101,第二次实例化hs2.x++就是101+1=102,之后的hs1又实例化一次做++操作x=103,最后做--操作,最终结果为102。
第二个问题
这里你应该是指static{x+=5}吧,这个static表示这是个静态块,当虚拟机加载该类时,会先初始化它,有点类似构造方法,题中进行了两次static{ ... }操作,依次计算后x的值为3,最后输出了3
很简单的问题,写的有点繁琐,希望你会看懂
不写在方法里面的变量叫做成员变量,也叫全局变量,定义了成员变量后,在同一个类里的每个方法都可以使用,而不局限在单个方法里,你的这个成员变量是用static修饰的,所以它是一个类变量,类变量资源共享,所以在第一次实例化后x+1后x=101,第二次实例化hs2.x++就是101+1=102,之后的hs1又实例化一次做++操作x=103,最后做--操作,最终结果为102。
第二个问题
这里你应该是指static{x+=5}吧,这个static表示这是个静态块,当虚拟机加载该类时,会先初始化它,有点类似构造方法,题中进行了两次static{ ... }操作,依次计算后x的值为3,最后输出了3
很简单的问题,写的有点繁琐,希望你会看懂
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |