java变量的作用域
成都创新互联公司于2013年创立,是专业互联网技术服务公司,拥有项目做网站、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元复兴做网站,已为上家服务,为复兴各地企业和个人服务,联系电话:18982081108
当一个变量被定义的时候,他的作用域就就被确定了。(这就好象一个人,你生下来,你父母就给你取名,你的名字就定了!!!)
按作用域的不同,变量可以分为以下类型:
1.成员变量
在类中声明,它的作用域是整个类! (这个是变量范围最大的)
2.局部变量
在方法内部或者方法的一个代码块的内部声明
如果在一个方法内部声明,它的作用域就是整个方法
如果在一个方法的某个代码块的内部声明,他的作用域就是这个代码块
代码块:位于一个{}以内的代码!!
3.方法的参数
方法或者构造方法的参数,他的作用域是整个方法或者构造方法!
是指的访问权限么?
1,public
2,protected
3,(default)
4,private
1任何类都可以访问
2在同一个包中的所有类可以访问,以及该类的子类
3同一个包中的所有类
4只能在本类中访问
throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;
throws本身并不捕获异常,方法后加了throws只能说明这个方法可能抛出异常.
例如:public Test() throws RepletException {
}
这个方法.就是可能抛出异常.这样的方法被调用的时候就必须加try..catch.或 在抛!
所以,也就说你主函数中确实有错误.而throws Exception时运行正常说明,有了异常也没东西捕捉.而你加了try..catch当然就能捕捉到了.至于错在哪.你又没贴代码(在加上本人水平有限).所以我也不是很清楚
1,2楼所说的作用域问题,是大家经常出的错.这个有可能.你最好把变量声明放在try上边.
作用域在Java方法中是不能嵌套的。
在Java中,方法内的一个变量的作用域(包括方法参数)是从它定义的地方开始,直到它所在的作用域的结束位置。
比如,在方法开始定义了变量i,那么直到方法结束都不能再定义另一个i了。再比如在一个for语句中定义了变量i,那么在这个for循环内不能再有同名变量,但出了for循环之后,是可以再次定义的。这就是作用域不能嵌套的意思。
在c/c++中,作用域可以嵌套,比如:
int i;
{
int i;
{
......可以无限制地嵌套下去,这里每对大括号之间就是一个独立的作用域
}
}
再深入一点,在Java中,类与方法之间作用域是可以嵌套的,把类看做一个大的作用域,它定义的字段(或叫域)可以被方法中的同名字段所屏蔽,其行为类似于上面将的c/c++的作用域嵌套。
栈空间溢出了 好吧,
不用看你代码,
你肯定在不停的new 出新的对象,造成死循环了。
回去看你的代码,
public ClassA(){
ClassA a=new ClassA();
}
看有类似的代码没
你反编译一下,你就能看到如下:
public ClassA(){
public A(){
a=new ClassA();
}
}
js能划分作用域的只有function,块级作用域指的是定义在条件或循环分支中的,像你举的这个函数例子,test定义在for循环之内,再for循环之外也能访问what变量 (这是js的变量提升,可以查一下,它会把what提升到test函数的最开头定义)function test(){
for(var i=0;i3;i++){
var what = "haha";
} console.log(what);
}
test();
如果你这段代码换成Java的,是下面这样的:private void test(){
for(int i=0;i3;i++){
String what =“123";
}
System.out.println(what);
❵
这个方法是编译不通过的,因为what的作用域只在for循环之内,为块级作用域。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款