实例变量,局部变量,全局变量,静态全局变量

摘抄网上的

定义:

实例变量:定义在一个类的各个内部方法之外,是内部方法共享的变量

局部变量:定义在方法之中的变量,但是这个方法使用的变量,其他方法和类没法使用。

全局变量:也称为外部变量,它是在函数外部定义的变量,一个程序的所有的java源文件都可用。

静态全局变量:一程序由多个java源文件组成时,可以用静态全局变量指定某一个java源文件,仅这个java文件可用这变量。

 1 int a,b; //外部变量
 2 static int c;//静态外部变量
 3
 4 public class Sample
 5 {
 6
 7 private int a=1; //实例变量
 8
 9 public void b()
10 {
11 int a=2; //局部变量
12 System.out.println("局部变量:a="+a);
13 System.out.println("实例变量:a="+this.a);
14 }
15
16 public void d()
17 {
18 System.out.println("局部变量:a="+a);//实例变量的a=1能套用在这里,局部a=2不能
19 System.out.println("实例变量:a="+this.a);
20 }
21
22 }
23
24 public class Sample
25 {
26
27 private int a=1; //实例变量
28
29 public void b()
30 {
31 int a=2; //局部变量
32 System.out.println("局部变量:a="+a);
33 System.out.println("实例变量:a="+this.a);
34 }
35
36 public void d()
37 {
38 System.out.println("局部变量:a="+a);//实例变量的a=1能套用在这里,局部a=2不能
39 System.out.println("实例变量:a="+this.a);
40 }
41 }

 特点:

局部变量:

1. 局部变量要先赋值,再进行运算,而实例变量均已经赋初值。(这是局部变量和实例变量的一大区别)

2. 局部变量不允许范围内定义两个同名变量。实例变量的作用域在本类中完全有效,当被其他的类调用的时候也可能有效。

3. 实例变量和局部变量允许命名冲突。

实例变量:

1. 实例变量的对象赋值为null,可以 public int形式,系统自动赋值,而局部不行必须要以a=3赋值才开始运算。

局部变量:

1,使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,不成为什么问题,除非使用的是巨大对象的全局变量,调用全局变量的机会变多,所以会略占内存。

2,当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。

3,当一个java文件要引用另一个java里定义的一个全局变量时就要用extern

例如 A的java定义一个全局变量int a;   //定义一个全局变量a

B的java想引用要extern int a;   //声明一个全局变量a          B在开头声明引用,下面的代码就能用此变量了。

静态局部变量:

1. 静态局部变量始终存在着,也就是说它的生存期为整个源程序

2. 允许对构造类静态局部量赋初值。若未赋以初值,系统自动赋值,数值型变量自动赋初值0,字符型变量赋空字符。

原文地址:https://www.cnblogs.com/guotao123/p/10400169.html

时间: 2024-10-13 05:27:41

实例变量,局部变量,全局变量,静态全局变量的相关文章

C/C++语言变量问题(全局变量、局部变量、静态全局变量、静态局部变量)

1.C/C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种: 全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 1>全局变量具有全局作用域.全局变量只需在一个源文件中定义,就可以作用于所有的源文件.当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量. 2>静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,它和全局变量的区别在于全局变量对所有的函数都是可见的

全局变量、局部变量、静态全局变量、静态局部变量在内存里的区别

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

C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别 (转)

1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种: 全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 1>全局变量具有全局作用域.全局变量只需在一个源文件中定义,就可以作用于所有的源文件.当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量. 2>静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,它和全局变量的区别在于全局变量对所有的函数都是可见的,而

C零基础视频-44-静态局部变量、静态全局变量、静态函数

目录 static关键字 静态局部变量 静态全局变量 静态函数 static关键字 C语言中的static关键字,有多种用于,它可以用来修饰局部变量.全局变量和函数,分别得到静态局部变量.静态全局变量和静态函数. 静态局部变量 使用static修饰局部变量,就得到静态局部变量: static int nValue = 0; 静态局部变量的特点: 只初始化一次 仅在定义的函数内可以使用 void FunTest() { static int nValue = 0; nValue++; printf

四种变量的区别(局部变量,全局变量,静态局部变量,静态全局变量)

区别: 1. 局部变量: (1)在函数体内部或者复合语句中定义的变量称为局部变量. (2)作用域为当前的函数体. (3)在栈区(动态存储区)分配. (4)函数调用时开始分配,调用结束时释放. 2. 全局变量: (1)在函数体之外定义的变量称为全局变量. (2)当前文件所有函数都可以调用该变量,其他文件调用需要使用extern关键字. (3)在静态存储区分配. (4)程序运行期间不释放. 3. 静态局部变量: (1)在函数体内部定义并加上static关键字修饰的变量. (2)作用域为当前函数体,函

java 成员变量、局部变量、静态变量、类变量、非静态变量、实例变量、向前引用、非法向前引用、静态代码块、非静态代码块

①java类的成员变量有俩种: 一种是被static关键字修饰的变量,叫类变量或者静态变量 另一种没有static修饰,为成员变量 ②通俗点说: 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享.静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期. 而实例变量取决于类的实例.每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期. 注意点: 1.JAVA中初始化

Java基础——成员变量、局部变量和静态变量的区别

之前在刚开始学习Java的时候,就谈了谈Java基础中的变量,虽然知道这货以后会经常用到,但没想到了基本语法这里,竟然有冒出来了成员变量.局部变量和静态变量.变来变去太容易让人搞晕了,挑拣出来梳理一下喽! 要想区分这哥仨,首先,我们得知道它们分别是什么.先从成员变量下刀. 成员变量 我们来研究一个事物: 属性:外在特征:例如人的身高,体重 行为:能够做什么:例如人有说话,打球等行为. 而在Java语言中,最基本的单位是类,类就是用来体现事物的. 用类class来描述事物也是如此: 属性:对应类中

静态变量与实例变量的区别

语法定义上区别:被static修饰的变量称为静态变量或者类变量.没有被static修饰的对象称为实例变量  程序运行上区别:只有创建实例对象后,其中的实例变量才会被分配空间,才能使用这个实例变量.但是静态变量不属于不属于某个实例对象,而是属于类,所以也称类变量.只要程序加载了类的字节码,不用创建任何的实例对象,静态变量就会被分配空间,就可以被使用了.总的来说,实例变量必须创建对象后才可以通过这个对象来使用,而静态变量则可以直接通过使用类名来使用! 举个例子: public  class Test

转:C语言中的static变量和C++静态数据成员(static member)

转自:C语言中的static变量和C++静态数据成员(static member) C语言中static的变量:1).static局部变量        a.静态局部变量在函数内定义,生存期为整个程序运行期间,但作用域与自动变量相同,只能在定义该变量的函数内使用.退出该函数后, 尽管该变量还继续存在,但不能使用它.        b.对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值.而对自动变量不赋初值,则其值是不定的.2).static全局变量        全局变量本身就是静