前言
java的语法归为类c语言,这是因为它的很多语法参考了C语言,我们都知道C语言中是没有面向对象的,只有一个一个的函数(备注:C语言中的结构体有点类似对象),java中为了也可以写一些与对象无关的函数,就增加了称为静态方法的妥协方案,今天我们一起学习静态方法
什么是静态方法?
静态方法,英文名static method,还有一个别称为类方法,说明静态方法是属于类的,与对象无关,,静态方法的实现也特别容易,只需要在普通方法上增加一个static关键字即可,这就是静态方法!!!再强调一遍,静态方法与类相关,与对象无关
class Baby {
public static void test(){
System.out.print("baby");
}
}
静态方法怎么调用呢?
第一种:最常用的调用方法,类名.静态方法()
Baby.test();
第二种:通过创建的对象调用
Baby myBaby = new Baby();
myBaby.test();
静态方法中的限制
限制1:不能访问实例变量
原因:静态方法属于类,对象还没有创建,当然不能访问实例变量了
class Baby{
private String name = "wangyuanwai";
public static void test() {
//这里是不能访问实例变量name的
System.out.print(name); //错误代码
}
}
限制2:不能访问实例方法
原因:同上
class Baby{
private String name = "wangyuanwai";
public void printName() {
System.out.print(name);
}
public static void test() {
//这里是不能访问实例方法printName
printName(); //错误代码
}
}
实例方法中可以调用静态方法
原因:既然静态方法作为类的方法,实例方法调用时,已经有对象创建,可以访问类属于类的属性
class Baby{
public void printName() {
test(); //这是可以的
}
public static void test() {
System.out.print("test");
}
}
什么时候用静态方法?
看看GPT的建议吧,非常的中肯
- 工具类方法:静态方法常用于创建工具类,如`Math`类中的数学计算方法。
- 辅助方法:静态方法可以用于辅助实例方法,提供一些公共的逻辑处理。
- 管理资源:静态方法可以用于管理共享的资源,如数据库连接池等。
该不该用静态方法?
需要注意的是,静态方法应尽量少使用,因为它们破坏了面向对象的封装性和可维护性。静态方法应该是简单且不涉及类的状态的方法。
我再给解读一下,非必要不使用静态方法!!