6.Java变量的作用域

在Java中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。

类级变量又称全局级变量或静态变量,需要使用static关键字修饰,你可以与 C/C++ 中的 static 变量对比学习。类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化。

对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问。

方法级变量就是在方法内部定义的变量,就是局部变量。

块级变量就是定义在一个块内部的变量,变量的生存周期就是这个块,出了这个块就消失了,比如 if、for 语句的块。块是指由大括号包围的代码,例如:

  1. {
  2. int age = 3;
  3. String name = "www.weixueyuan.net";
  4. // 正确,在块内部可以访问 age 和 name 变量
  5. System.out.println( name + "已经" + age + "岁了");
  6. }
  7. // 错误,在块外部无法访问 age 和 name 变量
  8. System.out.println( name + "已经" + age + "岁了");

说明:

  • 方法内部除了能访问方法级的变量,还可以访问类级和实例级的变量。
  • 块内部能够访问类级、实例级变量,如果块被包含在方法内部,它还可以访问方法级的变量。
  • 方法级和块级的变量必须被显示地初始化,否则不能访问。

演示代码:

  1. public class Demo{
  2. public static String name = "微学苑"; // 类级变量
  3. public int i; // 对象实例级变量
  4. // 属性块,在类初始化属性时候运行
  5. {
  6. int j = 2;// 块级变量
  7. }
  8. public void test1() {
  9. int j = 3; // 方法级变量
  10. if(j == 3) {
  11. int k = 5; // 块级变量
  12. }
  13. // 这里不能访问块级变量,块级变量只能在块内部访问
  14. System.out.println("name=" + name + ", i=" + i + ", j=" + j);
  15. }
  16. public static void main(String[] args) {
  17. // 不创建对象,直接通过类名访问类级变量
  18. System.out.println(Demo.name);
  19. // 创建对象并访问它的方法
  20. Demo t = new Demo();
  21. t.test1();
  22. }
  23. }

运行结果:
微学苑
name=微学苑, i=0, j=3

时间: 2024-11-05 16:23:01

6.Java变量的作用域的相关文章

java变量的作用域

1.可分为成员变量和局部变量 两者的作用域不同:局部变量的作用域仅限于定义它的方法,方法外部无法访问,成员变量的作用域在整个类内部都可以访问如果访问权限允许的话,类外部也可以使用 初始值不同:对于成员变量,如果类内部没有给初始值,java会给它一个默认值,如数据类型值为0,引用类型的值为null,但java不会给局部变量赋予初值,因此局部变量必须要定义赋值之后才能使用局部变量可以和成员变量同名,在使用时,局部变量的优先级更高

Java中的变量与变量的作用域

关于Java中的变量及变量的作用域 关于Java中的变量及变量的作用域 0. 变量的概念 在程序运行期间,系统可以为程序分配一块内存单元,用来存储各种类型的数据.系统分配的内存单元要使用一个标记符来标识,这种内存单元中的数据是可以更改的.所有叫变量.定义变量的标记符就是变量名,内存单元中所装载的数据就是变量值.用一个变量定义一块内存以后,程序就可以用变量名代表这块内存中的数据.根据所存储数据类型的不同,有各种不同类型的变量. 1. Java的变量类型 2. 注意变量的有效取值范围 系统为不同的变

Java知多少(20)变量的作用域

在Java中,变量的作用域分为四个级别:类级.对象实例级.方法级.块级. 类级变量又称全局级变量或静态变量,需要使用static关键字修饰,你可以与 C/C++ 中的 static 变量对比学习.类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化. 对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问. 方法级变量就是在方法内部定义的变量,就是局部变量. 块级变量就是定义在一个块内部的变量,变量的生存周期就是这个块,出了这个块就消失了,比如 if.for 语句

Java基础 变量的作用域

变量的作用域: 1. Java用一对大括号作为语句块的范围,称为作用域. 2.作用域中的变量不能重复定义. 3.离开作用域,变量所分配的内存空间将被JVM回收. public void name(){ private String name = "rudy"; System.out.println("name"+name); { String name = "rd"; System.out.println("name"+nam

3.Java变量的声明、初始化和作用域

一.Java变量的声明 在 Java 程序设计中,每个声明的变量都必须分配一个类型.声明一个变量时,应该先声明变量的类型,随后再声明变量的名字.下面演示了变量的声明方式.     double salary;     int age;     Boolean op; 其中第一项称为变量类型,第二项称为变量名.分号是必须的,这是 Java 语句的结束符号. 同一类型的不同变量,可以声明在一行,也可以声明在不同行,如果要声明在同一行中,不同的变量之间用逗号分隔,例如下面的例子.     int st

oc中的构造方法和description方法,变量的作用域,

1.构造方法的声明和实现 //声明 - (id) initWithAge:(int) age andNo: (int) no; //实现 - (id) initWithAge:(int) age andNo: (int) no { self=[super init];//调用父类的init方法初始化 //判断对象是否为空 也可以直接写if(self) 或 if(self=[super init]) if(self!=nil) { _age=age; _no=no; } return self;

黑马程序员 02-成员变量的作用域

———Java培训.Android培训.iOS培训..Net培训.期待与您交流! ——— 1.作用域基本概念 局部变量.全局变量都有自己的作用域,成员变量也不例外. 作用域的概念:在什么范围内可以访问,这个范围就是作用域. 2.成员变量的作用域类型 @public         在任何地方都可以直接访问 @protected    可以在当前类与子类的实现@implementation中直接访问,外界想访问只能用set  get方法访问 @private        只能在当前类的实现@im

java变量学习笔记

int i =100; System.out.println(i); i =200; System.out.println(i); int i =300; //执行报错,原因同一个作用域内部同一个变量名不能重名 关于java中变量的作用域 什么是作用域? 说白了是变量的有效范围,除了这个范围就访问不到了,比如公司内部的财产别的公司不能用,作用域有大小范围只说 变量的作用域只要记住一句话,除了大括号就不认识了 public static void main(String[] args){ int

Java变量以及内存分配

Java变量以及内存分配(非常重要) 堆栈 静态存储区域 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收.注意它与数据结构中的堆是两回事,分配方式倒是类似于链表. 3.全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的