代码实现
public class MathUtils {
private int num1;
public MathUtils(int num1) {
this.num1 = num1;
}
// 静态方法计算两个数的和
public static int add(int a, int b) {
return a + b;
}
// 实例方法计算num1和传入参数num2的乘积
public int multiply(int num2) {
return this.num1 * num2;
}
}
this
指向的不同及原因
- 在静态方法
add
中:
- 在Java中,静态方法属于类本身,而不是类的实例。所以在静态方法
add
中,不存在this
关键字。如果在静态方法中尝试使用this
,会导致编译错误。因为this
代表的是当前对象的引用,而静态方法在类加载时就存在,不依赖于任何对象实例。
- 在实例方法
multiply
中:
this
指向调用该方法的对象实例。当我们创建MathUtils
类的实例并调用multiply
方法时,this
就指向这个具体的实例对象。通过this
可以访问该实例对象的属性(如num1
),从而实现实例属性与传入参数的计算。例如:
MathUtils mathUtils = new MathUtils(5);
int result = mathUtils.multiply(3); // 这里的this指向mathUtils实例