Java核心技术卷,卷一,121页
Java程序设计语言总是采用按值调用,Java程序中方法参数的使用情况为:
1.一个方法不能修改一个基本数据类型的参数(即数值型和布尔型)
2.一个方法可以改变一个对象参数的状态
3.一个方法不能让一个对象参数引用一个新的对象
package com.luan.test;
public class ParatmTest {
public static void main(String[] args) {
//测试方法不会改变基本类型的参数
System.out.println("Testing tripleValue:");
double percent = 10;
System.out.println("Before :percent ="+percent);
tripleValue(percent);
System.out.println("After :percent ="+percent);
//测试方法可以改变对象的参数的状态
System.out.println("\nTesting tripleSalary");
Employee harry = new Employee("Harry",50000);
System.out.println("Before :salary="+harry.getSalary());
tripleSalary(harry);
System.out.println("After :salary="+harry.getSalary());
//测试方法不会让对象参数引用一个新的对象
System.out.println("\nTesting swap");
Employee a = new Employee("Alice",70000);
Employee b = new Employee("Bob",60000);
System.out.println("Before :a="+a.getName());
System.out.println("Before :b="+b.getName());
swap(a,b);
System.out.println("After :a="+a.getName());
System.out.println("After :b="+b.getName());
}
public static void tripleValue(double x){
x = 3*x;
System.out.println("End of the method: x="+x);
}
public static void tripleSalary(Employee x){
x.raiseSalary(200);
System.out.println("End of method:salary="+x.getSalary());
}
public static void swap(Employee x,Employee y){
Employee tmp = x;
x = y;
y = tmp;
System.out.println("End of the method:x="+x.getName());
System.out.println("End of the method:y="+y.getName());
}
}
class Employee{
private String name;
private double salary;
public Employee(String n,double s){
name = n;
salary = s;
}
public String getName(){
return name;
}
public double getSalary(){
return salary;
}
public void raiseSalary(double byPercent){
double raise = salary*byPercent/100;
salary+=salary;
}
}
|