Java方法参数的传递方式
2018-02-08 00:37
369 查看
一个方法不能修改一个基本数据类型的参数(即数值型或布尔型)。
一个方法可以改变一个对象(数组)参数的状态。
一个方法不能让对象参数(数组)引用一个新的对象。
简单来说,一个方法只能改变(对象 / 数组)参数的状态。例参数是数组时,如果在方法内对对数组参数进行修改,原数组的值也会相应改变。
程序运行结果:
一个方法可以改变一个对象(数组)参数的状态。
一个方法不能让对象参数(数组)引用一个新的对象。
简单来说,一个方法只能改变(对象 / 数组)参数的状态。例参数是数组时,如果在方法内对对数组参数进行修改,原数组的值也会相应改变。
public class ParamTest { public static void main(String[] args) { /* *Test1: Methods can't modify numeric parameters */ System.out.println("Testing tripleValue:"); double percent = 10; System.out.println("Before: percent=" + percent); tripleValue(percent); System.out.println("After: percent=" + percent); /* *Test2: Methods can change the state of object parameters */ 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()); /* *Test3: Methods can't attach new objects to object parameters */ System.out.println("\nTesting swap"); Employee a = new Employee("Alice", 30000); 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; System.out.println("End of 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 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(){} 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; } }
程序运行结果:
相关文章推荐
- Java方法参数传递方式总结
- 新手容易混乱的String+和StringBuffer,以及Java的方法参数传递方式。
- java方法调用中参数传递的方式
- Java方法中的参数传递方式
- 新手容易混乱的String+和StringBuffer,以及Java的方法参数传递方式
- java方法参数传递方式--按值传递、引用传递
- 关于JAVA方法参数传递方式
- 详解java中给方法传递参数的两种方式:按值传递,引用传递
- 关于"Java中方法参数的传递方式"的探讨
- Java方法的参数传递方式为: 值传递
- Java 方法参数传递方式
- 【转】java方法参数传递方式--按值传递、引用传递
- java程序设计语言将参数传递方法的方式
- java方法参数传递方式
- Java学习(八)方法参数传递方式
- 终极解释: java方法传递参数的方式
- Java方法参数传递方式
- 《Java中方法的参数传递方式只有一种:值传递》
- Java中的方法参数传递方式
- Java 方法中参数的传递方式