Skip to content

类方法


基本介绍

类方法也叫静态方法,同类变量一样,可以通过类名 . 方法名的方式调用

使用场景

当方法中不涉及任何对象相关的成员,可以将方法设计成静态方法

优势

提高开发效率,可以通过类名直接调用,无需创建对象后再调用

举例

Math 类,里面有很多静态方法,可以通过 类名 . 方法名 直接调用( Math . sqrt )

类方法的定义

第一种:访问修饰符 + static + 数据返回类型 + 方法名

java
public static int hi() {

}

第二种:static + 访问修饰符 + 数据返回类型 + 方法名

java
static public int hi() {

}

类方法的调用

(1) 第一种方法:类名 . 方法名

(2) 第二种方法:对象名 . 方法名

使用细节

(1)类方法和普通方法都是随着类的加载而加载,将结构信息存储在方法区

(2)普通方法和对象有关,需要通过对象名调用,比如对象名.方法名(参数),不能通过类名调用。

(3)类方法中不允许使用和对象有关的关键字,比如 thissuper ,普通方法(成员方法)可以使用。

(4)类方法不能被重写

(5)区别普通方法和类方法

1. 类方法(静态方法):只能访问静态成员静态方法

2. 普通成员方法(非静态方法):既可以访问非静态成员,又可以访问静态成员(必须遵守访问权限),同时也可以访问静态方法

代码示例

统计各个学生交的学费总和

java
package payfee;

public class main {
    public static void main(String[] args) {

        student jack = new student("jack");
        jack.payfee(10);

        student tom = new student("tom");
        tom.payfee(10);

        String totfee = student.totalfee(); // 通过类名调用
        System.out.println(totfee);

    }
}

class student{

    String name;
    static double totalfee;

    // 无参构造器
    public student(){

    }

    // 有参构造器
    public student(String name) {
        this.name = name;
    }

    // 支付学费方法
    public void payfee(double fee){
        totalfee += fee;
    }
    // 设置静态方法,统计所有学生的学费
    public static String totalfee(){
        return "收到的总学费为: " + totalfee;
    }
}