提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在我们编写Java的过程中,我们会定义各种各样的变量,那么定义的变量的作用域是多大呢?
提示:以下是本篇文章正文内容,下面案例可供参考
一、什么是作用域?
1.作用域解释
变量的作用域,其实描述的就是变量的有效范围。
在什么范围之内是可以被访问的,只要出了这个范围该变量就无法被访问了。
2.作用域的范围
在学习Java前期的时候,对变量的作用域只需要记住一句话:
出了大括号就不认识了。
public class VarTest03
{
//注意这里的static不能去掉!
static int k = 90;
public static void main(String[] args){
//变量i的作用域是main方法
//在整个main方法当中是有效的,可见的,可以访问的
int i = 100;
System.out.println(i); //可以访问
Systen.out.println(k); //这里也可以访问k
}
public static void doSome(){
//这里无法访问main方法当中的变量i
//已经出了i变量的作用域。
//System.out.println(i);
//这里的k可以访问
System.out.println(k);
}
}
还有一种情况,就是使用for循环语句等,具体详情后面讲到for循环的时候再提
public class VarTest03
{
public static void main(String[] args)
{
for (int a=0;a<10;a++)
{//a的变量的作用域是整个for循环,for循环结束之后,a变量的内存就释放了。
}
/**这里无法访问a变量
*System.out.println(a);
*/
int j; //作用域是main方法
for(j=0;j<10;j++)
{
System.out.println(j); //这里j则可以访问,访问的是main方法当中的j变量
}
}
}
二、变量的分类
1.关于变量的分类
根据变量声明的位置来分类:
局部变量
在方法体当中声明的变量叫局部变量
成员变量
在方法体外【类体内】声明的变量叫做成员变量
public class VarTest04
{
//成员变量
int k = 200;
//主方法:入口
public static void main(String[] args){
/**i变量就是局部变量
*int i = 10;
*
*java遵循“就近原则”
*/
System.out.println(i);//这里i的值为100,因为上面的i=10注释了,故访问下面的static int i = 100.
}
//i变量就是成员变量
static int i = 100;//类体中不能直接编写Java语句【除变量声明之外】。并且类体中无上下顺序,故上面System.out.println(i)可以访问这里的成员变量
//doSome方法
public static void doSome(){
//局部变量
int i = 90;
}
}
在不同的作用域当中,变量名可以相同!
在同一个作用域当中,变量名不能相同!
类体中不能直接编写Java语句【除变量声明之外】。并且类体中无上下顺序。
总结
在不同的作用域当中,变量名可以相同!
在同一个作用域当中,变量名不能相同!
Java遵循就近原则
类体中不能直接编写Java语句【除变量声明之外】。并且类体中无上下顺序。