静态方法属于类本身,不依赖对象实例,用类名直接调用;适用于工具类中的计算、转换、校验等无状态功能,如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 关键字,调用时不依赖对象。
采用HttpClient向服务器端action请求数据,当然调用服务器端方法获取数据并不止这一种。WebService也可以为我们提供所需数据,那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起。 实现Android与服务器端数据交互,我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,
立即学习“Java免费学习笔记(深入)”;
- 定义示例: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。










