static静态
例如静态方法:
static void wujuezhe();
当我们用到这个静态方法,我们不用去new一个对象,只需要直接《类名.wujuezhe();》就可以了
因为静态方法只属于类本身,不属于某个对象!
一般非静态的方法被叫做实例方法,也就是对象方法
而静态方法被叫做类的方法。。。。
再来个例子:
class point
{
int x,y;
static void output()
{
system.out.println(x);
}
public static void main(string[] args)
{
point.output();
}
}
输出是错误的system.out.println(x);这行!
因为静态方法是在类被加载的时候,就分配了代码空间,这时候我们没有产生一个point对象。
而这个x和y是要我们去new一个对象之后,在我们内存中分配了x和y,当我们用类名去调用静态方法的时候,x并没有分配空间,所以这样调用是不可以的,如果要访问那个X变量!那么就要把X修改成静态变量,这样静态空间里面就有x了!
在静态方法中,不能调用非静态的方法和成员变量,而非静态的却可以调用静态的方法和变量
可以用类的对象去调用静态方法或变量,但是静态方法不属于对象的,而是属于类的,就是不管你多少个对象,用的都是同样一个静态方法和变量,而不是用对象本身的变量或方法!当然一般都是通过类去调用,而少去用对象调用。。。。