与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。其实之前我们一直写的 main 方法就是静态方法。静态方法的使用如:
public class HelloWorld {
//使用static关键字声明静态方法
public static void print() {
System.out.println("初同学要上进!");
}
public static void main(String[] args)
{
//直接使用类名调用静态方法
HelloWorld.print();
//也可以通过对象名调用,更推荐使用类名调用的方式
HelloWorld hello = new HelloWorld();
hello.print();
}
}
运行结果:
1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如:
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。如:
2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量,如下所示:
public class HelloWorld{
public class HelloWorld{
String name = "初同学";//非静态变量
static String hobby = "买鞋";//静态变量
//普通成员方法可以直接访问非静态变量和静态变量
public void show() {
System.out.println("欢迎您:"+name+"!");
System.out.println("爱好:"+hobby+"!");
}
}
3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。如:
public class HelloWorld{
//普通成员方法
public void show() {
System.out.println("this is cma");
}
//静态方法
public static void print() {
System.out.println("这里是初同学");
}
public static void main(String [] args) {
HelloWorld hello =new HelloWorld();
//普通成员方法必须通过对象来调用
hello.show();
//静态成员方法可以直接调用
print();
}
}
样题
public class HelloWorld {
// 定义静态变量score1
static int score1 = 86;
// 定义静态变量score2
static int score2 = 92;
// 定义静态方法sum,计算成绩总分,并返回总分
public static int sum() {
int sum;
sum=score1+score2;
return sum;
}
public static void main(String[] args) {
// 调用静态方法sum并接收返回值
int allScore = sum();
System.out.println("总分:" + allScore);
}
}