首页编程java编程java 属性静态方法的区别是什么 在JAVA中, 静态方法和一般方法有什么区别

java 属性静态方法的区别是什么 在JAVA中, 静态方法和一般方法有什么区别

编程之家2023-10-13114次浏览

大家好,今天来为大家分享java 属性静态方法的区别是什么的一些知识点,和在JAVA中, 静态方法和一般方法有什么区别的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

java 属性静态方法的区别是什么 在JAVA中, 静态方法和一般方法有什么区别

Java中的静态方法是什么

静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配。

静态方法为类所有,可以通过对象来使用,也可以通过类来使用。

我们之前一直写的mian方法仔细看看,它就是一个静态方法,静态方法使用如下:

java 属性静态方法的区别是什么 在JAVA中, 静态方法和一般方法有什么区别

运行结果:

使用静态方法时,要注意:

1、静态方法可以调用同类中的其他成员,但不能直接调用非静态成员,如:

java 属性静态方法的区别是什么 在JAVA中, 静态方法和一般方法有什么区别

运行结果:

2、但是如果希望静态方法中调用非静态成员,可以通过创建类的对象,然后通过对象来访问非静态变量。如

运行结果:

3、静态方法同样不能直接调用非静态方法,但可以通过对象来访问非静态方法,如:

运行结果:

Java 中 静态方法与非静态方法的区别

静态方法和实例方法的区别主要体现在两个方面:

在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。

下面几个例子展示了这一区别。

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()方法是一个典型的静态方法,它同样遵循一般静态方法的规则,所以它可以由系统在创建对象之前就调用。

在JAVA中, 静态方法和一般方法有什么区别

静态方法在JVM刚加载的时候就编译过了...在程序的运行过程中随时可以调用...不需要去实例化某个对象然后再去调用...可以直接用类名去调用...不过你想一下,在JVM刚加载的进修就编译过了..也就是说它一直存在着...也就是说它一直占用这内存中的地址空间...所以说也是比较占资源的噢!

相对于静态方法而言,动态方法占的内存资源就少些...因为它是什么时候使用什么时候实例化...也就是说在不使用的时候它是不会占用资源的...相对与静态方法的缺点是它每次使用的时候都要进行实例化...也就是说比较麻烦一些了...

各有各的优点与缺点...看情况..你觉得什么时候使用哪种方法方便就使用哪种!假如你要频繁地调用某一方法当然最好就不要老是实例化对象喽...不过一个方法你很少用..你要是用静态方法就太浪费空间资源了..你学得呢???

祝君早日成功!!!

java中静态方法和成员方法有什么区别

静态方法只能访问静态成员,实例方法可以访问静态和实例成员。

在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

静态方法在程序初始化后会一直贮存在内存中,不会被垃圾回收器回收,

非静态方法只在该类初始化后贮存在内存中,当该类调用完毕后会被垃圾回收器收集释放。

静态方法在初始化类时初始化,并分配内存;动态方法只有先创建类的实例对象后,才能调用动态方法

关于本次java 属性静态方法的区别是什么和在JAVA中, 静态方法和一般方法有什么区别的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

java为什么要return 在Java中,return返回值的意义是什么为什么要用返回值java项目什么情况用多线程 java电商项目,什么场景需要使用多线程