score1和score2为什么必须定义为静态变量??

来源:8-9 Java 中的 static 使用之静态方法

慕少7365235

2017-11-01 18:19

score1和score2都定义在类中,不是属于成员变量么?其他类和方法不能直接调用么??

写回答 关注

4回答

  • 慕虎8754231
    2017-11-07 14:03:10

    类中的静态变量在程序运行期间,其内存空间对所有该类的对象实例而言是共享的,为了节省系统内存开销、共享资源,应该将一些变量声明为静态变量。

  • 瓶子修
    2017-11-02 11:32:21

    静态方法也是可以调用其他类的方法的,只是需要在静态方法中创建这个类的对象,就是在执行静态方法时,申请一个对象,然后才可以使用这个对象的方法。总的来说就是,想要执行,就需要给它分配内存空间,内存里没有,就没办法执行。

  • 瓶子修
    2017-11-01 22:27:56

    静态变量和其他的非静态的成员变量是不同的,静态变量在整个源程序运行的过程中是一直存在的,在最开始的时候就给它分配的内存空间。而非静态的变量则是在创建对象的时候才被分配内存空间。

    同样,静态方法也是,在最开始的时候就已经给分配空间,也就是说,它不需要建立一个对象才能调用,直接类本身就可以调用,这样就必须保证静态方法的内容也必须是不需要通过对象调用就可以使用的,所以它只能调用同样被分配空间的静态变量。

  • 72fc5c0f8317
    2017-11-01 20:00:06

    静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。

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

    如果score1和score2都不是静态变量,那么下面的静态方法sum()就不能调用了啊


Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530653 学习 · 6091 问题

查看课程

相似问题