【原文出处】:
http://hi.baidu.com/aezealer/blog/item/fb8fdd438113c8169213c6c5.h

tml
术语“static”有段不寻常的历史。起初,在C中引入关键字static是为了

表示退出一个块后仍然存在的局部变量。
在C中static实际通常有两种含义:一是在声明局部变量时,表示该局部变

量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,

在下一次该函数调用时,该变量已有的值,就是上一次函数调用结束时的值

;另一种含义是表示不能被其他文件访问的全局变量和函数。
后来,C++重用了这个关键字,并赋予它一种新的含义:表示属于一个类

而不是属于此类的任何一个特定对象的变量和函数。这种含义同在Java中是

一样的。
这样定义一个类后,每一个雇员有一个ID号码,和一个雇员数。但实际雇员

数是没有必要在每个雇员中都保留一份的。对于一个类Eemployee只需一个

雇员数就可以了。而且每一个雇员有一个雇员数,当雇员数变化时,还要更

新每一个雇员内的字段,比较麻烦。而static正式解决这个问题的一种方法。

无论在Java还是在C++中,若将一个数据成员还是方法声明为staic。无论类

有多少个实例,这个数据成员或方法只有一个。下面,我们在Java和C++中

分别讨论它。
在Java中,静态变量并不常见,最长使用的是静态常量。如在Math类中定

义了一个静态常量。
Java:
public class Math
{
……
public static final double PI=3.14159265358979323846;
……
}
C++:
#include <iostream>
using namespace std;
class MathClass
{
public:
static double PI ;
};
double MathClass::PI = 3.1415926;
int main ()
{
cout << MathClass::PI;

在程序中可以使用Math.PI来访问此常量。如果关键字static被省略,那么PI

则是Math类的一个实例字段。也就是说如果要访问PI,需要通过Math类的

一个对象,而且每个对象都有自己的一份PI拷贝。
在C++中,静态数据成员通常放在类的内部实现部分中定义。定义时,需

要用类名引导。在对静态数据成员访问时,使用类名或对象名都可以。通常

静态数据成员用的较多的场合为:
· 用于保存流动变化的对象个数。
· 作为一个标记,指示一个特定的动作是否发生。
· 一个指向一个链表第一个或最后一个成员的指针。
无论在Java中还是在C++中,静态方法是不向对象施加操作的方法。可以把

静态方法看作是没有this参数的方法(在C++中即为没有this成员指针的函数

)。因为静态方法并不操作对象,所以不能用静态方法类访问实例字段。但

是它可以访问自身类中的静态字段。
通常在以下良两种情况下需要使用静态方法:
1.该方法不需要访问对象的状态,其所需的参数都通过显示参数提供。
2.该方法只需要访问类的静态字段。

C C++ Java中的static的更多相关文章

  1. (转)Java中的static关键字解析

    转载: http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: &q ...

  2. 关于Java中的static关键字

    Java中的 static 关键字,确实是一个关键的字(key word),今天就来总结一下它的用法,说说为什么关键. Java中的 static 关键字主要是用来做内存管理的.理解了这句话才能够比较 ...

  3. Java中的static关键字解析

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

  4. java中的static使用--静态变量、静态方法

    Java 中的 static 使用之静态变量 大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 s ...

  5. (转)Java中的static关键字解析

    转自http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: “sta ...

  6. Java中的static的使用

    Java中的static使用之静态变量 神话丿小王子的博客主页 1.Java 中被static修饰的成员称为静态成员或类成员.它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享.且优先于对象 ...

  7. java中的static详解

    如果一个类成员被声明为static,它就能够在类的任何对象创建之前被访问,而不必引用任何对象.static 成员的最常见的例子是main( ) .因为在程序开始执行时必须调用main() ,所以它被声 ...

  8. Java 中的 static 使用之静态变量

    大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大显身手的时候了!! Java 中 ...

  9. Java中的static关键字解析 转载

    原文链接:http://www.cnblogs.com/dolphin0520/p/3799052.html Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到 ...

  10. java中的static变量

    java中的static变量 例如 public static int num=0: num+=1;放在函数里面 调用一次变动一次.

随机推荐

  1. Java---练习(面试题) :字符串截取(2-最终版)

    在java中,字符串"abcd"与字符串"ab你好"的长度是一样,都是四个字符. 但对应的字节数不同,一个汉字占两个字节. 定义一个方法,按照指定的字节数来取子 ...

  2. 关于unsigned int和int的加法

    补码(two's complement) 在计算机系统中,数值一律用补码来表示和存储.原因在于,使用补码,可以将符号位和数值域统一处理:同时,加法和减法也可以统一处理.此外,补码与原码相互转换,其运算 ...

  3. POJ-1200(哈希)

    2015-08-19 题意:给出两个数n,nc,并给出一个由nc种字符组成的字符串.求这个字符串中长度为n的子串有多少种. 分析: 1.这个题不用匹配,因为不高效. 2.将长度为n的子串看作n位的nc ...

  4. setTimeout中所执行函数中的this,永远指向window

    注意是要延迟执行的函数中的this哦!! //片段一 setTimeout("alert(this)", 1); // [object Window] //片段二 var obj ...

  5. Unity3D NGUI UIPlayTween控件(一)动态打开关闭窗口

    利用NGUI自带的脚本控件实现按钮点击窗口滑动出现与隐藏. 创建界面 首先建立如下图的三个BUtton与三个Panel 绑定脚本 然后在每个Button上添加UIPlayTween脚本,在Intera ...

  6. redis常见错误

    1.Redis Error --MISCONF Redis is configured to save RDB snapshots省略 分析:(linux)未用root启动,用的app用户(没有最高权 ...

  7. [Redux] Avoiding Object Mutations with Object.assign() and ...spread

    Learn how to use Object.assign() and the spread operator proposed for ES7 to avoid mutating objects. ...

  8. 那些年,学swift踩过的坑

    最近在学swift,本以为多是语法与oc不同,而且都是使用相同的cocoa框架,相同的API,但是或多或少还是有些坑在里,为了避免以后再踩,在这里记下了,以后发现新的坑,也会慢慢在这里加上 [TOC] ...

  9. [转] 查看CPU使用率 top命令详解

    一 top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前 台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示 ...

  10. Java基础知识强化93:算一下你来到这个世界多少天的案例

    1. 分析: (1)键盘录入你的出生年月日 (2)把该字符串转换为一个日期 (3)通过该日期得到一个毫秒值 (4)获取当前时间的毫秒值 (5)用(4)-(3)得到一个毫秒值 (6)把E的毫秒值转换为天 ...