声明为public是为了这个方法可以被外部调用,
static是为了将某个成员变量/方法关联到类(class)而非实例(instance)。
你不需要创建一个对象就可以直接使用这个类的static成员,因而在static成员中不能调用非static成员,因为后者是关联到对象实例(instance)的。
在A类中调用B类的static成员可以使用B.staticMember的写法。
注意一个类的static成员变量是唯一的,被所有该类对象所共享的,在多线程程序设计中尤其要谨慎小心。
类的static成员是在类第一次被JRE装载的时候初始化的。
你可以使用如下方法来使用非static成员:
public class A
{
private void someMethod() //非static成员
{}
public static void main(String args)
{
A a = new A(); //创建一个对象实例
a.someMethod(); //现在你可以使用非static方法了
}
}
概括来讲,静态类可以不需要创建对象直接调用,非静态类需要创建一个对象,然后由对象来调用。当程序比较小的时候,看不出来它的作用,但是如果你了解了面向对象的思想以后,就会知道,每个类都有属于自己的方法,不同的类有不同的方法,简单举例来说,我们有两个类,一个是飞机类,一个是汽车类,这两个类各有属于自己的一个方法——“载客”,那我们可以这样做,新建一个飞机类,在飞机类里面写一个私有的“载客”方法,再新建一个汽车类,在汽车类里面同样写一个私有的“载客”方法,虽然他们的方法名相同,但是他们的载客方法是不一样的,如果只用一个静态的“载客”方法,是无法实现这两个类的“载客”的区别的
关于面向对象的思想需要自己好好去理会,当你明白之后,就自然明白为什么不把所有的方法写成static的了 |