Core Java (九) Java的方法参数
来源:互联网 发布:淘宝的手机充值平台 编辑:程序博客网 时间:2024/05/17 23:27
在各种程序设计语言中方法的参数有两种,分别是:值调用,引用调用。
Java程序设计语言总是采用值调用,即方法得到了所有参数值的一个拷贝。
细分的话,方法参数一共两种类型:
- 如果参数是基本数据类型,那么传递的是一个基本数据类型的值;
- 如果参数是对象,那么传递的是一个对象引用的拷贝,注意不是C++中的对象引用。这个引用的拷贝和其他的拷贝一样,同时引用了一个对象。
一个方法不可能修改一个基本数据类型的参数,但是可以修改一个对象的状态。
一定要注意,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 workswap(staff[0], staff[1]);System.out.println(staff[0].getName());//BobSystem.out.println(staff[1].getName());//Jimstaff[0].raiseSalary(0.5);//涨50%的工资System.out.println(staff[0].getSalary());//1500.0System.out.println(staff[0].getId());//1System.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;}
- Core Java (九) Java的方法参数
- Java Core摘要--方法参数
- java深入学习九之java方法传递参数
- [Java Core]Java类的equals方法的实现
- java 方法的参数传递
- [Java] main方法的参数
- Java方法的参数传递
- Java--方法参数的传递
- Java方法的参数传递
- Java方法的参数传递
- JAVA的方法参数传递
- Java 方法参数的变化
- java 参数可变的方法
- java方法参数的传递
- Java main方法的参数
- Java方法的可变参数
- java方法的可变参数
- Core Java(十二) Object类的重要方法
- android ndk c代码调用java的代码
- S3c2440-ARM920t中断原理
- SQL SERVER 2008 R2 什么意思。
- !!!
- 文件批量重命名
- Core Java (九) Java的方法参数
- S3c2440支持中断源个数
- Struts2 中的值栈的理解
- 项目管理中-采购管理
- 开源软件真的开源了吗
- Data && Binding
- C#中应用DDE技术实现动态数据交换
- struts2之值栈(value stack)(转)
- HashMap深入分析