博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C C++ Java中的static
阅读量:5115 次
发布时间:2019-06-13

本文共 1384 字,大约阅读时间需要 4 分钟。

【原文出处】:

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.该方法只需要访问类的静态字段。

转载于:https://www.cnblogs.com/yibanshouxi/p/4425313.html

你可能感兴趣的文章
对Java前四章的感受
查看>>
【Linux】ping命令详解
查看>>
对团队成员公开感谢博客
查看>>
java学习第三天
查看>>
python目录
查看>>
django+uwsgi+nginx+sqlite3部署+screen
查看>>
Andriod小型管理系统(Activity,SQLite库操作,ListView操作)(源代码下载)
查看>>
在Server上得到数据组装成HTML后导出到Excel。两种方法。
查看>>
浅谈项目需求变更管理
查看>>
经典算法系列一-快速排序
查看>>
设置java web工程中默认访问首页的几种方式
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>
jQuery Mobile笔记
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>
查询数据(后台到前台传递数据,显示数据)
查看>>
集群tomcat+apache配置文档
查看>>
VMware Tools安装
查看>>
Linux上架设boost的安装及配置过程
查看>>
[转载]加密算法库Crypto——nodejs中间件系列
查看>>