静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配。
静态方法为类所有,可以通过对象来使用,也可以通过类来使用。
我们之前一直写的mian方法仔细看看,它就是一个静态方法,静态方法使用如下:
运行结果:
使用静态方法时,要注意:
1、静态方法可以调用同类中的其他成员,但不能直接调用非静态成员,如:
运行结果:
2、但是如果希望静态方法中调用非静态成员,可以通过创建类的对象 ,然后通过对象来访问非静态变量。如
运行结果:
3、静态方法同样不能直接调用非静态方法,但可以通过对象来访问非静态方法,如:
运行结果:
静态方法是使用static关键字来修饰的方法,如:public
class
Dog{public
static
void
show(){}}
这里的show()就是一个静态方法,它有全局方法的特点。
静态方法的调用不需要对象,可以用类名直接调用,如:
Dog.show()
当然,使用对象也是可以调用它的,如:new
Dog().show()
首先静态方法是用static来修饰的静态方法就是可以不通过生成类的实例直接来调用的
举个简单的例子:
class
A
{
public
static
void
a()
{
System.out.println("A被调用")
}
public
void
b()
{
System.out.println("B被调用")
}
}
假设你要调用方法a和方法b
如果调用方法a可以直接A.a()就可以了
不需要先
A
aa
=
new
A()aa.a()
但是调用b则必须A
aa
=
new
A()aa.b()
还有在继承里面要注意:
如果B继承自A
而且B中和A中都包含相同的函数
如果是实例方法则是被B覆盖掉的
如果是静态方法则是被B隐藏掉的
这一点
在上溯机制中可能遇到
最后还有一点静态方法调用的方法一定也要是静态的