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

java中static的作用是什么?

发布网友 发布时间:2022-04-25 00:48

我来回答

3个回答

热心网友 时间:2022-04-26 11:35

有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。

声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。声明为static的方法有以下几条*:
·
它们仅能调用其他的static 方法。
·
它们只能访问static数据。
·
它们不能以任何方式引用this 或super(关键字super 与继承有关,在下一章中描述)。
如果你需要通过计算来初始化你的static变量,你可以声明一个static块,Static 块仅在该类被加载时执行一次。下面的例子显示的类有一个static方法,一些static变量,以及一个static 初始化块:
// Demonstrate static variables,methods,and blocks.

class UseStatic {
static int a = 3;
static int b;

static void meth(int x) {
System.out.println("x = " + x);
System.out.println("a = " + a);
System.out.println("b = " + b);

}

static {
System.out.println("Static block initialized.");
b = a * 4;

}

public static void main(String args[]) {
meth(42);
}
}

一旦UseStatic 类被装载,所有的static语句被运行。首先,a被设置为3,接着static 块执行(打印一条消息),最后,b被初始化为a*4 或12。然后调用main(),main() 调用meth() ,把值42传递给x。3个println ( ) 语句引用两个static变量a和b,以及局部变量x 。

注意:在一个static 方法中引用任何实例变量都是非法的。

下面是该程序的输出:

Static block initialized.
x = 42
a = 3
b = 12
在定义它们的类的外面,static 方法和变量能独立于任何对象而被使用。这样,你只要在类的名字后面加点号运算符即可。例如,如果你希望从类外面调用一个static方法,你可以使用下面通用的格式:

classname.method( )

这里,classname 是类的名字,在该类中定义static方法。可以看到,这种格式与通过对象引用变量调用非static方法的格式类似。一个static变量可以以同样的格式来访问——类名加点号运算符。这就是Java 如何实现全局功能和全局变量的一个控制版本。

下面是一个例子。在main() 中,static方法callme() 和static 变量b在它们的类之外被访问。

class StaticDemo {
static int a = 42;
static int b = 99;
static void callme() {

System.out.println("a = " + a);
}
}

class StaticByName {

public static void main(String args[]) {
StaticDemo.callme();
System.out.println("b = " + StaticDemo.b);

}
}

下面是该程序的输出:

a = 42
b = 99参考资料:还有什么问题就到www.conjs.com留言.以后相互学习

热心网友 时间:2022-04-26 12:53

静态修饰的变量只在该类加载的时候执行依次,以后在调用该类的时候修饰的变量不会再次加载。

public class A{
static a=0;

public static void b(){
}

}
a=0只会在程序加载的时候执行一次。

当你程序中把a的值改变了,那么下一次在调用A类的时候a的值不会被初始化为0。

static修饰的方法可以直接用 类名.方法名 调用如上面 的 可以A.b()直接调用方法b不用
A dd=new A();

dd.b();

这样调用。

热心网友 时间:2022-04-26 14:28

static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 烤鱼干的做法,烤鱼干怎么做好吃,烤鱼干的家常 微波炉烤鱼干的做法,微波炉烤鱼干怎么做好吃 怎么做好吃的烤鱼干 java中static作用是什么? 碳烤鱼干的做法 烤鱼干的做法,烤鱼干怎么做好吃,烤鱼干的家常做法 想在长安信托设立我的家族信托,怎么样呢? 家族信托发展前景怎么样? 长安信托兑付的家族信托业务怎么样? 我们家腌咸菜总是用一种叫‘腊嗒’的蔬菜,外形像萝卜,表面比萝卜粗糙,不知道它的学名叫什么? 潮汕地区的咸菜是什么菜腌制的 有种蔬菜绿色的皮,脆的,实心的,圆的经常腌咸菜用的,叫什么? 有一种专门做腌菜的菜叫什么菜? 东北常吃的一种可以腌制成咸菜的菜,口感脆脆的,东北俗称鬼子姜,想知道学名,谢谢大家了 腌咸菜的那个叫不叫泡椒? 关于湖北省宜昌市的生猪养殖有什么优惠政策!! 宜昌生活圈安全吗? 疫情情况下宜昌人要不要回北京上班年前从北京回宜昌的? 湖北多地景区对江苏人限时优惠,都有哪些景区呢? 宜昌哪里有买宠物蛇 超简单干香烤鱼怎么做 自己制作烤鱼的方法? 水利科学发展观征求意见 java static作用 急需,高分!【让青春在全市水利现代化建设中*澎湃】的演讲稿 java中静态代码块 static的作用 南水北调与水利科技的基本信息 JAVA编程中static的用途与用法 天津水务集团有限公司引江市区分公司怎么样? JAVA里 static什么作用? 天津水务集团有限公司引江市南分公司怎么样? 请大神解释一下java中static的作用和意思,请不要弄网上的概念来回答。谢谢 广东江河水务有限公司怎么样? java static作用是什么? 江西省水利科学研究院待遇 天津市水务局待遇 天津水利工程公司待遇怎么样? 天津市水利科学研究院的主要成就 什么是中试试验? 今年政府工作的九项重点任务是?