score1和score2都定义在类中,不是属于成员变量么?其他类和方法不能直接调用么??
类中的静态变量在程序运行期间,其内存空间对所有该类的对象实例而言是共享的,为了节省系统内存开销、共享资源,应该将一些变量声明为静态变量。
静态方法也是可以调用其他类的方法的,只是需要在静态方法中创建这个类的对象,就是在执行静态方法时,申请一个对象,然后才可以使用这个对象的方法。总的来说就是,想要执行,就需要给它分配内存空间,内存里没有,就没办法执行。
静态变量和其他的非静态的成员变量是不同的,静态变量在整个源程序运行的过程中是一直存在的,在最开始的时候就给它分配的内存空间。而非静态的变量则是在创建对象的时候才被分配内存空间。
同样,静态方法也是,在最开始的时候就已经给分配空间,也就是说,它不需要建立一个对象才能调用,直接类本身就可以调用,这样就必须保证静态方法的内容也必须是不需要通过对象调用就可以使用的,所以它只能调用同样被分配空间的静态变量。
静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
如果score1和score2都不是静态变量,那么下面的静态方法sum()就不能调用了啊