java里静态方法在什么情况下使用,好处是什么
答案:5 悬赏:10
解决时间 2021-02-21 10:04
- 提问者网友:做自己de王妃
- 2021-02-21 05:12
java里静态方法在什么情况下使用,好处是什么
最佳答案
- 二级知识专家网友:执傲
- 2019-04-18 23:28
Static 修饰的方法或变量称为静态的.静态数据存在于内存中的方法区,数据加载以后可直接使用.如:A 类中有一个非静态的 B 方法和静态的 C 方法,那么调用B方法时需要创建A类的对象,而调用C方法时可直接类名加方法名调用,无需新建对象. 静态方法始终占据内存空间,调用方便.非静态相反,具体看情况你自己选择
全部回答
- 1楼网友:舍身薄凉客
- 2020-12-22 07:25
如果想使用某个类的方法,又不需要实例化,就可以使用静态方法,通过类名直接调用
这样的场景一般是工具类偏多
好处是直接通过类名使用其类静态方法,方便
- 2楼网友:持酒劝斜阳
- 2019-07-11 08:46
转:
静态方法和实例方法的区别主要体现在两个方面:
在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。
下面几个例子展示了这一区别。
1、调用静态方法示例。
//-----------文件名hasstaticmethod.java,程序编号1-----------------public class hasstaticmethod{//定义一个静态方法public static void callme(){system.out.println("this is a static method.");}}
下面这个程序使用两种形式来调用静态方法。
//-----------文件名invokestaticmethod.java,2-----------------public class invokestaticmethod{public static void main(string args[]){hasstaticmethod.callme(); //不创建对象,直接调用静态方法 hasstaticmethod oa = new hasstaticmethod(); //创建一个对象oa.callme(); //利用对象来调用静态方法}}
程序3.36两次调用静态方法,都是允许的,程序的输出如下:
this is a static method.this is a static method.
允许不创建对象而调用静态方法,是java为了减少程序员调用某些常用方法时的麻烦,而允许程序员按照传统的c语言中使用函数的方式来使用方法。典型的例子是前面某些程序中使用"math.ramdon()"来获取随机数。
2、静态方法访问成员变量示例。
//-----------文件名accessmember.java,程序编号3.37-----------------class accessmember{private static int sa; //定义一个静态成员变量private int ia; //定义一个实例成员变量//下面定义一个静态方法static void statmethod(){int i = 0; //正确,可以有自己的局部变量sa = 10; //正确,静态方法可以使用静态变量otherstat(); //正确,可以调用静态方法ia = 20; //错误,不能使用实例变量insmethod(); //错误,不能调用实例方法}static void otherstat(){} //下面定义一个实例方法 void insmethod(){int i = 0; //正确,可以有自己的局部变量sa = 15; //正确,可以使用静态变量ia = 30; //正确,可以使用实例变量statmethod(); //正确,可以调用静态方法}}
本例其实可以概括成一句话:静态方法只能访问静态成员,实例方法可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用实例方法,将间接地允许它使用实例成员变量,所以它也不能调用实例方法。基于同样的道理,静态方法中也不能使用关键字this。
main()方法是一个典型的静态方法,它同样遵循一般静态方法的规则,所以它可以由系统在创建对象之前就调用。
- 3楼网友:西岸风
- 2020-10-27 02:03
直接使用类名调用, 不需要 使用对象调用时, 可以使用静态方法。
好处就是直接调用, 不用创建对象。
- 4楼网友:七十二街
- 2021-01-04 12:18
访问静态变量,只能用静态方法,因为静态变量属性是所有对象共享的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯