java基础中静态方法怎么用?

静态方法属于类本身,不依赖对象实例,用类名直接调用;适用于工具类中的计算、转换

、校验等无状态功能,如Math.abs();只能访问静态成员,不可重写,不支持多态。

静态方法属于类本身,不依赖对象实例,用 类名.方法名 直接调用,不用 new 对象。

什么时候该用静态方法

适合放那些跟类逻辑相关、但不操作实例数据的功能,比如工具类里的计算、转换、校验等。

  • Math.abs()、Arrays.sort() 都是典型静态方法
  • 自己写工具类(如 DateUtils、StringUtils)时,多数方法都设为 static
  • main 方法必须是 static,因为 JVM 启动时还没创建任何对象

静态方法能访问什么

只能直接访问:本类的静态成员变量和其他静态方法;不能直接用 this、super,也不能访问非静态字段或方法。

  • 想访问实例内容?得传入对象作为参数,比如 public static void printName(Person p) { System.out.println(p.name); }
  • 静态方法里不能写 this.name 或直接调 getName()(除非 getName 也是 static)

怎么定义和调用

在方法声明前加 static 关键字,调用时不依赖对象。

  • 定义示例:public static int add(int a, int b) { return a + b; }
  • 调用方式:int sum = Calculator.add(3, 5);(假设类叫 Calculator)
  • 同类中调用可省略类名,直接写 add(3, 5)

注意别踩坑

静态方法不可被重写(override),子类同名方法只是隐藏(hide)父类方法;也不支持多态,编译时就绑定类名。

  • 父类 A 有 static void show(),子类 B 也写一个,调用 A a = new B(); a.show(); 执行的还是 A 的版本
  • 如果需要运行时动态绑定行为,得用普通(非 static)方法

基本上就这些。用对了很顺手,用错了容易绕晕——关键是记住:静态方法 = 类级别、无状态、不依赖 this。