Core Java (九) Java的方法参数,
分享于 点击 42791 次 点评:106
Core Java (九) Java的方法参数,
在各种程序设计语言中方法的参数有两种,分别是:值调用,引用调用。
Java程序设计语言总是采用值调用,即方法得到了所有参数值的一个拷贝。
细分的话,方法参数一共两种类型:
一个方法不可能修改一个基本数据类型的参数,但是可以修改一个对象的状态。
一定要注意,Java中对对象采用的是引用的拷贝,并不是引用调用,反例如下:
测试程序:
package com.xujin;
public class Test {
public static void main(String[] args) {
Employee[] staff = new Employee[2];
staff[0] = new Employee("Bob", 1000);
staff[1] = new Employee("Jim", 2000);
//doesn't work
swap(staff[0], staff[1]);
System.out.println(staff[0].getName());//Bob
System.out.println(staff[1].getName());//Jim
staff[0].raiseSalary(0.5);//涨50%的工资
System.out.println(staff[0].getSalary());//1500.0
System.out.println(staff[0].getId());//1
System.out.println(staff[1].getId());//2
}
public static void swap(Employee x, Employee y){
Employee temp = x;
x = y;
y = temp;
}
}
class Employee{
public Employee(String name, double salary){
this.name = name;
this.salary = salary;
id = nextId;
nextId++;
}
public String getName(){
return name;
}
public double getSalary(){
return salary;
}
public int getId(){
return id;
}
public void setName(String name){
this.name = name;
}
public void setSalary(double salary){
this.salary = salary;
}
public void raiseSalary(double percent){
this.salary *= (1 + percent);
}
private String name;
private double salary;
private int id;
private static int nextId = 1;
}
相关文章
- 暂无相关文章
用户点评