static的用法】的更多相关文章

static静态,作为修饰符,最初是由c引入,一开始static表示退出一个块后依然存在的局部变量.随后,static表示不能被其他文件访问的全局变量和函数.到了C++和java,static表示属于类且不属于类对象的变量和函数. 从具体用法来看,主要用到5个方面. 一.静态域. static修饰类的域(字段,成员变量),被static修饰的域在类中只有一个,它属于类,也称为类域.它只能被类操作,不能由对象操作.比如 pubic class Employee { private static i…
Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static 可以修饰: 1. 语句块 2. 成员变量(但是不能修饰局部变量) 3. 方法 4. 接口(内部接口) 5. 类(只能修饰在类中的类, 即静态内部类) 6. jdk 1.5 中新增的静态导入 那么static 修饰的表示什么呢? 当创建一个类时,就是在创建一个新类型,描述这个类的对象的外观和行为,除…
C#   static的用法详解 有的东西你天天在用,但未必就代表你真正了解它,正如我之前所了解的 static . 一.静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类:其次,它防止在类的内部声明任何实例字段或方法. 1.静态类的主要特性: [1] 仅包含静态成员. [2] 无法实例化. [3] 静态类的本质,是一个抽象的密封类,所以…
首先,看看变量的存储: int global ; int main() { int stackStore ; int heapStore* = (int *)malloc(sizeof(int)); } 变量global存储在全局数据存储区,stackStore存储在栈中,heapStore存储在堆中: static作为静态修释符用法: 1.static可以用来修饰变量,也可以用来修饰函数,其用法相似: 2. static可以静态的呈现一个变量,在作用范围内不会改变变量的值; 3. 但是如果函数…
本文转载于http://www.cnblogs.com/stoneJin/archive/2011/09/21/2183313.html 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.为理解这句话,我举例来说明.我们要同时编译两个源文件,一个是a.c,另一个是main.c. 下面是a.c的内容 )static的第二个作用是保持变量内…
java中static关键字可用于修饰: 1.属性:表示该属性变量在类被加载时即被创建并初始化,类加载过程只进行一次,因此静态变量也只被创建一次 2.方法:静态方法为类的公有方法,可直接用‘类名.方法名'访问,静态方法不可访问本类中的非静态成员,子类不可 将父类的静态方法覆盖为非静态的,反之亦然.此外,静态方法中不能使用this关键字,也不能用super关键字去访问 父类静态方法,可直接用'父类.父类静态方法名'访问. 3.代码块:静态初始化代码块,在类被加载时执行一次,可用于类的初始化 具体实…
1.使用范围:类.方法.变量.2.区别和联系:2.1.static 含义:静态的,被 static 修饰的方法和属性只属于类不属于类的任何对象.2.2.static 用法:2.2.1.static 可以修饰[内部类].方法和成员变量.2.2.2.static[不可以修饰外部类].[不可以修饰局部变量](因为 static 本身就是定义为类级别的,所以局部级别的变量是不可以用 static 修饰的).2.3 final 含义:[只能赋值一次]的.2.2.final 用法:2.2.1.final 修…
一.typedef主要功能是定义一个已存在类型的别名,但是和宏并存 宏与typedef区别 1.宏定义只是简单的字符串替换 2.typedef定义的类型是类型的别名,typedef后面是一个整体声明,是不能分割的一个整体,具有一定的封装性,不是简单的字符串替换 看下面的例子: #define PSTR_MACRO char* typedef char* PSTR int main() { PSTR piVar1,piVar2; PSTR_MACRO piVar3,piVar4; int iVar…
1.什么是static? static 是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性. 1.1static的引入 我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义为全局的变量,但定义一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅只受此函数控制).s…
本文将主要从static在C和C++共有的作用及C++特有的作用两个方面进行解析. 在C和C++中共有的作用 隐藏(对变量.函数均可) 当同时编译多个文件时,所有未加static前缀的全局变量或全局函数都具有全局性.举例来说明,同时编译两个源文件,一个是a.c,另一个是main.c,如下: //a.c char a = 'A'; // global variable void msg() { printf("Hello\n"); } a.c //main.c int main() {…
前面介绍嵌套类的时候讲到了关键字static,用static修饰类,该类就变成了嵌套类.从嵌套类的用法可知,其它地方访问嵌套类之时,无需动态创建外层类的实例,直接创建嵌套类的实例就行.其实static不光修饰类,还能用来修饰方法.修饰属性等等,例如大家学习Java一开始就遇到的main方法,便为static所修饰.当一个成员方法被static修饰之后,该方法就成为静态方法:当一个成员属性被static修饰之后,该属性就成为静态属性.静态方法和静态属性,它俩同嵌套类一样不依赖于所在类的实例.外部若…
static (计算机高级语言) 编辑 像在VB,C#,C,C++,Java,PHP中我们可以看到static作为关键字和函数出现,在其他的高级计算机语言如FORTRAN.ALGOL.COBOL.BASIC.LISP.SNOBOL.PL/1.Pascal.PROLOG.Ada等语言中也是有出现的,只是有着不同的作用,对于其具体作用,读者有需要的时候是可以具体查阅的.   中文名 static 分    类 关键字 举    例 VB,C#,C,C++,PHP 来    自 高级计算机语言 目录…
C 语言的 static 关键字有三种(具体来说是两种)用途: 1. 静态局部变量:用于函数体内部修饰变量,这种变量的生存期长于该函数. int foo(){ static int i = 1; // note:1 //int i = 1; // note:2 i += 1; return i; } 要明白这个用法,我们首先要了解c/c++的内存分布,以及static所在的区间. 对于一个完整的程序,在内存中的分布情况如下:   栈区: 由编译器自动分配释放,像局部变量,函数参数,都是在栈区.会…
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用.一.面向过程设计中的static1.静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量.我们先举一个静态全局变量的例子,如下: #include<iostream> using namespace std; static int n;  //定义静态全局变量 void fn() { n++…
首先,看看变量的存储: int global ; int main() { int stackStore ; int heapStore* = (int *)malloc(sizeof(int)); } 变量global存储在全局数据存储区,stackStore存储在栈中,heapStore存储在堆中: static作为静态修释符用法: 1.static可以用来修饰变量,也可以用来修饰函数,其用法相似: 2. static可以静态的呈现一个变量,在作用范围内不会改变变量的值; 3. 但是如果函数…
static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有以下特点. a.在全局区分配内存. b.如果没有初始化,其默认值为0. c.该变量在本文件内从定义开始到文件结束可见. 2.定义局部静态变量:在局部变量前面加上关键字static,其特点如下: a.该变量在全局数据区分配内存. b.它始终驻留在全局数据区,直到程序运行结束. c. 其作用域为局部作用…
static关键字的基本作用就是方便在没有创建对象的情况下调用类的方法/变量, static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问. static关键字可以修饰类的成员变量,成员方法,也可以编写静态代码块来优化程序的性能. 注意:局部变量不能被声明为static变量: 虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的: 即使没有显示地声明为static,类的构造器实际上也是静态方法:…
静态:static 用法:是一个修饰符,用于修饰成员(成员变量,成员函数), 当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调:类名.静态成员 类名.静态成员 存在:方法区,共享区,数据区(非堆内存.栈内存的另一个存储区),Static 块仅在该类被加载时执行一次. static特点: 1,随着类的加载而加载,也就是说静态会随着类的消失而消失,说明他的生命周期最长 2,优先于对象的存在.(静态先存在,对象后存在.) 3,被所有对象所共享 4,可以直接被类名调用 由…
static在c里面可以用来修饰变量,也可以用来修饰函数.先看用来修饰变量的时候.变量在c里面可分为存在全局数据区.栈和堆里.其实我们平时所说的堆栈是栈而不是堆,不要弄混.int a ;int main(){    int b ;     int c* = (int *)malloc(sizeof(int));}a是全局变量,b是栈变量,c是堆变量.static对全局变量的修饰,可以认为是限制了只能是本文件引用此变量.有的程序是由好多.c文件构成.彼此可以互相引用变量,但加入static修饰之后…
一.c程序存储空间布局 C程序一直由下列部分组成: 1)正文段--CPU执行的机器指令部分:一个程序只有一个副本:只读,防止程序由于意外事故而修改自身指令: 2)初始化数据段(数据段)--在程序中所有赋了初值的全局变量,存放在这里. 3)非初始化数据段(bss段)--在程序中没有初始化的全局变量:内核将此段初始化为0.      4)栈--增长方向:自顶向下增长:自动变量以及每次函数调用时所需要保存的信息(返回地址:环境信息). 5)堆--动态存储分.是向高地址扩展的数据类型,是自下向上的扩展方…
之前文章说过Java中static的作用,有朋友想看个例子.于是便抽空写了个小栗子 代码 package xing.test.thinking.chap5; class A{ public A() { System.out.println("A constructor"); } } class VarTest{ static A a = new A(); public static int b = 0; public int c = 0; static{ System.out.prin…
一.静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类:其次,它防止在类的内部声明任何实例字段或方法. 静态类的主要特性: 1:仅包含静态成员. 2:无法实例化. 3:静态类的本质,是一个抽象的密封类,所以不能被继承,也不能被实例化. 4:不能包含实例构造函数. 5:如果一个类下面的所有成员,都需要被共享,那么可以把这个类定义为静态类.…
static成员变量 为什么要有静态成员变量:1)不进入全局名字空间.2)实现信息隐藏 要点: 除了整型的const 静态成员变量可以在类体内初始化,其它值都需要在类体外的实现文件定义 static函数 为什么要有静态成员变量:主要是用来访问/修改静态成员变量 要点:1)静态成员函数在类内的声明加static,在类外的定义不能加static 2)静态成员函数不能为const或者volatile…
静态变量 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用. 有时候,我们希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代码国家名称的变量.例子: protected void Page_Load(object sender,…
说明1: 表示静态的关键字说明此对象在应用中只存在一份 说明2:C# 是面向对象的程序设计语言,每一个函数都属于一个类. 当 一个方法被声明为Static时,这个方法是一个静态方法,编译器会在编译时保留这个方法的实现.也就是说,这个方法属于类,但是不属于任何成员,不管这 个类的实例是否存在,它们都会存在.就像入口函数Static void Main,因为它是静态函数,所以可以直接被调用. 当一个方法被声明为Virtual时,它是一个虚拟方法,直到你使用ClassName variable = n…
1.static定义变量: 1).局部: a.静态局部变量在函数内部定义,生存期为整个源代码,但作用域与自动变量相同,只能在定义的函数里面使用.退出该函数后,虽然此变量还存在内存中,但不能使用. b.对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予为0.而对于自动变量不赋值,其值是不确定的.(其值就是“上次”用过此内存残留的值) 2).全局: 全局变量本身就是以静态存储的.对于全局变量和全局静态变量的区别: 全局静态变量只能在声明的这个文件内有效,在其他源文件中无效. 全局变量在其他…
一.final数据 在 java编程语言中,有时候需要告知编译器一段数据是不变的编译期常量.对于这种情况,编译器可以将此常量值带入需要用到它的计算式子当中,这种在编译时 执行计算式的方法减轻了运行时的开销.通常,这类常量数据都是基本类型的数据,并赋予关键字final,同时在对此常量定义时需要进行赋值. 值得注意的是:对于基本类型,使用final关键字将使数值恒定不变:而对于对象引用,final则是使引用恒定不变.一旦引用被初始化为指向一个对象时,它也就无法再指向另外一个对象,然而该对象本身是可以…
PHP中static变量的使用范围要更广一些,我们不仅可以在类,方法或变量前面添加static修饰符,我们甚至还能给函数内部变量添加static关键字.添加了static修饰符的变量即使在该函数执行完毕值仍然不会丢失,也就是说,在下一次调用这个函数时,变量仍然记得原来的值.如: 此时输出的结果是:3  5  7   此时输出的结果是:3  3  3  …
一.extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字:它告诉编译器,其声明的函数和变量可以在本函数文件或其它函数文件中使用. 1.对于extern变量来说,仅仅是一个变量的声明,其并不是在定义分配内存空间.extern在工程必须要有一个变量的定义,否则不能能使用. 2.extern使用之后可以实现全部工程的不同文件使用相同的变量,定义只能有一次可多次在不同c文件声明. 3.与extern对应的关键字是static,被它修饰的全局变量和函数只能在本模块中使用. 4.最好在…
有的东西你天天在用,但未必就代表你真正了解它,正如我之前所了解的 static . 一.静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类:其次,它防止在类的内部声明任何实例字段或方法. 1.静态类的主要特性: [1] 仅包含静态成员. [2] 无法实例化. [3] 静态类的本质,是一个抽象的密封类,所以不能被继承,也不能被实例化. [4…