问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

静态域中的域是什么意思?

发布网友 发布时间:2022-04-30 21:29

我来回答

4个回答

热心网友 时间:2023-10-14 10:44

静态成员变量可以脱离对象而存在,是类本身的属性。所以对于任何对象来说,这个静态成员都是存在的,类似对象间的全局属性。

相关资料
1、概念

在类定义中,如果一个域前面有static修饰符,则该域属于整个类,而不单单属于类的某个对象。这种域叫做静态域(static fields),而不加static修饰符的域,做作非静态域(non-static fields)。
可以为Point类增加一个静态域numberOfPoints,代表已经用Point类生成的Point类的对象个数,其初值不妨设为0:

static int numberOfPoints = 0;这样,numberOfPoints就是一个静态域。编译器在编译源代码时,就会为该类产生惟一的numberOfPoints域。即使没有用Point类生成任何具体的对象,该numberOfPoints域也存在。今后该类的所有对象,都将共享这个域。
【例4】将例3的PointDemo2.java中的Point类增加一个静态域numberOfPoints,代表已经用Point类生成的Point类的对象个数,改写如下。为醒目起见,对改写的语句增加了注释。

class Point {
//增加了一个静态域numberOfPoints,初值为0
static int numberOfPoints = 0;
int x;
int y;
//两个构造函数如下,其中专门对numberOfPoints进行了加1操作
public Point(int newX, int newY) {
x = newX;
y = newY;
numberOfPoints++;
}
public Point() {
x = 0;
y = 0;
numberOfPoints++;
}
//以下方法不变
void setX(int newX) {
x = newX;
}
void setY(int newY) {
y = newY;
}
int getX() {
return x;
}
int getY() {
return y;
}
void printStates() {
System.out.println("x="+x+", y="+y);
}
}那么,该怎样使用静态域?静态域又有什么用处呢?

2、使用静态域

【例5】使用例4的Point类改写PointDemo2.java为PointDemo3.java。为醒目起见,对改写的语句增加了注释。

import java.io.*;
//主类名自然变成了PointDemo3
class PointDemo3 {
public static void main(String[ ] args) {
Point p1 = new Point(23, 94);
p1.printStates();
System.out.println("现在一共有" + Point.numberOfPoints + "个点");
Point p2 = new Point();
p2.printStates();
System.out.println("现在一共有" + Point.numberOfPoints + "个点");
}
}

class Point {
……//例4中的Point类,为节省篇幅略
}程序的执行结果为:

x=23, y=94
现在一共有1个点
x=0, y=0
现在一共有2个点简要讲解:例5演示了静态域的使用方法和简单作用。在编译程序时,系统为静态域numberOfPoints分配内存空间,并赋值为0。在main方法中,首先声明了一个Point类的引用对象p1,它调用Point类的构造函数Point()生成一个具体对象,在构造函数Point()中有这样一句话:

numberOfPoints++;它把numberOfPoints自加1,所以在执行第一句:

System.out.println("现在一共有" + Point.numberOfPoints + "个点");时,系统输出:

现在一共有1个点程序又声明了一个Point类的引用对象p2,它调用Point类的构造函数Point(int, int)生成一个具体对象,在该构造函数Point()中也有这样一句话:

numberOfPoints++;它又把numberOfPoints自加1,所以在执行第二句:

System.out.println("现在一共有" + Point.numberOfPoints + "个点");时,系统输出:

现在一共有2个点可见,numberOfPoints域保存了系统生成的点的个数,它是静态域,被类的所有对象所共享,在用类生成具体对象前,就已经为它分配内存空间了;而x、y则是非静态域,只有当用类生成具体对象时,才为非静态域分配内存空间,并且类的每个对象各有一份。
本题的类和对象的各种域的形象表示如下图所示。

在程序中是这样使用numberOfPoints域的:

Point.numberOfPoints它体现了使用静态域的一般格式:

类名.静态域它使用了点操作符“.”。使用非静态域的格式则是:

对象名.非静态域例如,可以这样输出p1对象的x域值:

System.out.println(p1.x);点操作符“.”用于引用对象或类的域或方法。例如可以这样调用方法:

System.out.println(p1.getX());它输出p1对象的x域值。又如:

p2.printStates();它调用p2的printStates()方法,输出p2的x、y域值。

注意,也可以用“对象名.静态域”的形式使用静态域,如可以这样写:

System.out.println("现在一共有" + p2.numberOfPoints + "个点");但一般不提倡这样使用静态域,因为无法从调用格式看出一个域是否是静态域。
非静态域则不能使用“类名.非静态域”的形式,原因很简单:非静态域属于各对象而不属于类。

3、最终域

如果一个类的域被声明为final,则它的取值在程序的整个执行过程都不会改变。如果在程序中试图改变其值,则会出现编译错误。
final修饰符经常和static修饰符结合使用,用于定义常量。例如,下面的变量声明定义了PI常量,其值约等于圆周率:

static final double PI = 3.141592653589793;这样定义的常量不能重新赋值,否则会发生编译错误。一般来说,常量名应该全大写。如果名字包含多个英文单词,则各单词之间用下划线(_)分隔。

如果一个原数据类型或一个字符串被定义为常量,并且在编译时就知道它的值,编译器会在代码中用具体值取代常量出现的位置。这叫做编译时常量(compile-time constant)。如果外界常量的值发生了改变(例如圆周率变成了3.95),则在重新定义常量后,需要重新编译使用该常量的所有类。

为了节省空间,常量一般声明为static final或final static。

http://www.itsway.net/java/java030203.aspx

参考资料:http://www.itsway.net/java/java030203.aspx

热心网友 时间:2023-10-14 10:45

域可以理解为内存空间。域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。
域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元,在 Windows 网络操作系统中,域是安全边界。域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域;每个域都有自己的安全策略,以及它与其他域的安全信任关系。
域:域是一种管理边界,用于一组计算机共享共用的安全数据库,域实际上就是一组服务器和工作站的集合。
域在文件系统中,有时也称做“字段”,是指数据中不可再分的基本单元。一个域包含一个值。如学生的名字等。可以通过数据类型(如二进制、字符、字符串等)和长度(占用的字节数)两个属性对其进行描述。
域,在WORD文档中是一种可以发生变化的数据。他在页面视图中,与一般的文本看不出有什么区别,但是,当光标移入域中,就会发现,整体域的底纹颜色变成灰色(约灰色-30%)

热心网友 时间:2023-10-14 10:45

域可以理解为内存空间,因为静态域被类的所有对象所共享,在用类生成具体对象前,就已经为它分配内存空间了

热心网友 时间:2023-10-14 10:46

静态域就是这里面的变量可以不用类来调用就可以直接使用,相当于一个常数
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
月经不尽褐色的是怎么回事 月经前后有褐色分泌物是什么原因 二十四节气的重要意义24节气在生活中的作用 你来我往,猜一个数字? 姓谭女孩起什么名字最优雅 男孩姓谭的好名字 黄家驹在beyond的地位 黄家驹是Beyond的主唱吗? 老板对员工的新年微信 每次感冒和一些小毛病,我都是选择运动出身汗,让它自然好,请问这种方 ... 如何理解JAVA中的静态域和景泰变量 静态域是什么?怎么理解它呢? 在java中,为什么类实例也能访问静态域? java中的静态域到底在类的定义中扮演了一个怎样的角色? JAVA 实例域和静态域分别是什么意思 大一新生填表时政治面貌怎样填 有关于道德的名言 急求中国古代的的关于。。。道德的名言。。。写明出处。。。最好不... 论语里有一个,子曰:“德不孤,必有邻。”意思就是有道德的人不会没朋友。有没有关于这方面的名言警句? 关于道德名言 有道德的人不会孤单,一定会有志同道合的人与之相伴出自哪儿 道德有关的名言名句 2018河南高考报名手续 河南高考报名结束后还能报名吗 河南省高考报志愿可以改几次 河南省高考考生填报志愿是什么时候 颜色减淡在PS的哪里啊??怎么打开啊! 具体点! 谢谢了! 怎么用PHOTOSHOP把选中的区域颜色减淡? 有一张照片,手机照的,嘴唇颜色过红,怎么用PS把颜色淡化点 PS怎样把颜色减淡,PS高手来 写一种小动物,100字左右? java在下面的两种情况下使用静态方法,谁能给我解释一下吗? 关于java的static我很晕 请用有的有的有的来描写一只小动物 本人毕业了,家有点关系。建设局和水务局选那个好?工作情况,待遇,上升空间等多方面,谢谢 java静态方法(方法前冠以static)和实例方法(未冠以static)的区别 java static域会被clone吗 java主函数public static void main(String args[])中static的作用是什么 关于JAVA域的初始化 java中的静态代码块、代码块、构造器的执行顺序是怎样呢,这三者有什么作用呢 JAVA 静态类写法和调用 住建局好吗?待遇如何? C++和Java中Static的区别 请问java中的field是什么意思 山东省住房和城乡建设厅和水利厅哪个好 住房和城乡建设局公务员是干嘛的?待遇工资多少?这个部门好吗? 水利局一名普通科员的待遇怎么样 笔记本联想y520拯救者开不了机了怎么办 顺丰怎样查快递单号 家乡的 端午节作文110字