本文是学习网络上的文章时的总结以及自己的一点实践,感谢大家无私的分享。
Java程序设计语言对对象采用的不是引用调用,实际上,对象引用进行的是值传递。
在Java程序设计语言中,方法参数的使用情况:
1、一个方法不能修改一个基本数据类型的参数(即数值型和布尔型);
2、一个方法可以改变一个对象参数的状态;
3、一个方法不能实现让对象参数引用一个新的对象。
下面是测试代码
package SE; public class ParamTest { /** * <p> * </p> * @author zhangjunshuai * @date 2014-10-29 上午10:42:39 * @param args */ public static void main(String[] args) { //1、实验一 System.out.println("Testing tripleValue"); double percent = 10; System.out.println("Before:percent="+percent); tripleValue(percent); System.out.println("After:percent="+percent); //2、实验二 System.out.println("\nTesting tripleValue Object"); StringBuffer percentD = new StringBuffer("开始——————"); System.out.println("Before:percent="+percentD); tripleValue(percentD); System.out.println("After:percent="+percentD); //2.1、实验二 测试String对象 System.out.println("\nTesting tripleValue Object"); String percentS = "String开始——————"; System.out.println("Before:percent="+percentS); tripleValue(percentS); System.out.println("After:percent="+percentS); //3、实验3 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()); //4、实验4 System.out.println("\nTesting swap:"); Employee a = new Employee("Alice",7000); Employee b = new Employee("Bob",6000); 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()); } //一个方法不能修改String呀 public static void tripleValue(String x){ x = x+("测试"); System.out.println("End of method :x ="+x); } public static void tripleValue(StringBuffer x){ x = x.append("测试"); System.out.println("End of method :x ="+x); } //一个方法不能修改一个基本数据类型的参数 public static void tripleValue(double x){ x = 3 * x; System.out.println("End of method :x ="+x); } //一个方法可以改变一个对象参数的状态 public static void tripleSalary(Employee x){ x.raiseSalary(200); System.out.println("End of method:x="+x.getSalary()); } //一个方法不能实现让对象参数引用一个新的对象 public static void swap(Employee x,Employee y){ System.out.println("Before of method: x="+x.getName()); System.out.println("Before of method: y="+y.getName()); Employee temp = x; x= y; y = temp; System.out.println("End of method: x="+x.getName()); System.out.println("End of method: y="+y.getName()); } } class Employee { private String name; private double salary; public Employee(String n,double s){ name = n; salary = s; } public void raiseSalary(double i) { double raise = salary*i/100; salary += raise; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } }
时间: 2024-12-28 23:44:36