与静态变量一样,我们也可以使用 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();
	}
}

运行结果:

java静态方法的用途 java静态方法_静态变量

1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如:

java静态方法的用途 java静态方法_静态变量_02


如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。如:

java静态方法的用途 java静态方法_静态变量_03

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);
	}
}