类方法
基本介绍
类方法也叫静态方法,同类变量一样,可以通过类名 . 方法名的方式调用
使用场景
当方法中不涉及任何对象相关的成员,可以将方法设计成静态方法
优势
提高开发效率,可以通过类名直接调用,无需创建对象后再调用
举例
Math 类,里面有很多静态方法,可以通过 类名 . 方法名 直接调用( Math . sqrt )
类方法的定义
第一种:访问修饰符 + static + 数据返回类型 + 方法名
java
public static int hi() {
}第二种:static + 访问修饰符 + 数据返回类型 + 方法名
java
static public int hi() {
}类方法的调用
(1) 第一种方法:类名 . 方法名
(2) 第二种方法:对象名 . 方法名
使用细节
(1)类方法和普通方法都是随着类的加载而加载,将结构信息存储在方法区
(2)普通方法和对象有关,需要通过对象名调用,比如对象名.方法名(参数),不能通过类名调用。
(3)类方法中不允许使用和对象有关的关键字,比如 this 和 super ,普通方法(成员方法)可以使用。
(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;
}
}