对静态方法的思考!
是用静态方法的情况(从书上看到的)
1 当一个方法不需要访问对象的状态,其所需的参数都是通过显式参数提供的(如 Math.pow)
2 当一个方法只需要访问类的静态域。
虽然书上是这样说的,但是我们学习者是要思考的。到底怎么去用静态方法。
下面是我调试的一个程序,调试通过了期望的结果也和我想的一样。但是我想了一下这个例子tripleSalary(Percent)是调用了个静态的方法
public static void tripleSalary(Employee x) {
x.raiseSalary(200);
} 这个定义的静态方法。我知道什么是静态方法,但是我们应该怎么去用呢? 用静态方法有什么好处呢?
public class ParamTest {
public static void main(String[] args) {
double Percent = 10;
System.out.println("之前的:Percent=" + Percent);
tripleSalary(Percent);
System.out.println("之后的:Percent=" + Percent);
Employee harry = new Employee("Harry",5000);
System.out.println("调用方法之前的salary=" + harry.getSalary());
tripleSalary(harry);
System.out.println("调用方法之后的salary=" + harry.getSalary());
}
public static void tripleSalary(double x) {
x = 3 * x;
System.out.println("调用方法后: x=" + x);
}
public static void tripleSalary(Employee x) {
x.raiseSalary(200);
}
}
class Employee {
private String name;
private double salary;
public Employee(String name,double salary) {
this.name = name;
this.salary = salary;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public void raiseSalary(double byPercent) {
double raise = salary * byPercent / 100;
salary += raise;
}
}