我的java学习笔记(4)关于方法参数传递
来源:互联网 发布:lua源码下载 编辑:程序博客网 时间:2024/04/29 20:05
关于方法参数传递
1.按值调用表示方法接收的是调用者提供的值。
2.按引用调用表示方法接收的是调用者提供的变量地址。
Java程序设计语言总是采用按值调用,方法不能修改传递给它的任何参数变量的内容。
很多人认为java是采用引用调用是不对的。
举个栗子:
Employee a = new Employee("a",..);
Employee b = new Employee("b",..);
swap(a,b);
方法并没有改变存储在变量a和b中的对象引用。只是交换了这两个变量的拷贝。
实际上对象引用进行的是值传递。
总结:
1.一个方法不能修改一个基本数据类型的参数,即数值型和布尔型。
2.一个方法可以改变一个对象参数的状态。
3.一个方法不能让对象参数引用一个新的对象。
实例程序1:
public class test20150325 {public static void main(String[] args){System.out.println("测试 方法传值:");double percent = 10;System.out.println("调整前 percent =" + percent);setValue(percent);System.out.println("调整后 percent =" + percent);}public static void setValue(double x){x = 3 * x;System.out.println("在这个方法中x的值为" + x);}}
实例程序2:
public class test20150325002 {public static void main(String[] args){System.out.println("测试 方法传值");Employee boy = new Employee("boy",500);System.out.println("修改前的薪水:" + boy.getSalary());setSalary(boy);System.out.println("修改后的薪水:" + boy.getSalary());}public static void setSalary(Employee x){x.raiseSalary(300);System.out.println("End of method: salary = " + x.getSalary());}}class Employee{private String name;private double salary;public Employee(String n,double x){name = n;salary = x;}public double getSalary(){return salary;}public void raiseSalary(double p){double raise = salary * p / 100;salary += raise;}}
实例程序3:
public class test20150325003 {public static void main(String[] args){System.out.println("测试交换引用");Employee a = new Employee("a" , 1000);Employee b = new Employee("b" , 2000);System.out.println("修改前:a = " +a.getName());System.out.println("修改前:b = " +b.getName());swap(a,b);System.out.println("修改后: a = " +a.getName());System.out.println("修改后: b = " +b.getName());}public static void swap(Employee x,Employee y){Employee temp = x;x = y;y = temp;System.out.println("修改后 x = " + x.getName());System.out.println("修改后 y = " + y.getName());}}class Employee{private String name;private double salary;public Employee(String n,double x){name = n;salary = x;}public String getName(){return name;}public double getSalary(){return salary;}public void raiseSalary(double p){double raise = salary * p / 100;salary += raise;}}
0 0
- 我的java学习笔记(4)关于方法参数传递
- 我的java学习笔记(11)关于装箱、参数可变方法和枚举类型
- 关于Java方法参数的传递问题
- 我的Java开发学习之旅------>Java语言中方法的参数传递机制
- JAVA学习--方法的参数传递
- Java学习笔记----参数传递
- Java学习笔记2016.2.17 方法参数传递
- Java SE学习笔记:方法参数的传递机制、数组算法
- 关于"Java中方法参数的传递方式"的探讨
- 关于"Java中方法参数的传递方式"的探讨
- 关于java参数的传递
- 关于Java中方法调用时参数的传递
- 关于Java中方法调用时参数的传递
- 关于java中方法的参数传递问题
- 关于Java中方法调用时参数的传递
- 关于Java中方法调用时参数的传递
- java 方法的参数传递
- Java方法的参数传递
- 将C语言的声明描述成为语言
- 数据库第二次作业 王小芬 2013212954 理学院
- 如何将asc文件转换成的txt文件,并导入到sql server中?
- Linux系统调用程序分析
- 前端试题
- 我的java学习笔记(4)关于方法参数传递
- 密码截取
- 配置 log4j 详解
- Tree(并查集)
- 如何在Windows操作系统中搭建redis环境
- Hello,csdn.Hello,bolg.
- 蓝桥杯 21位的水仙花数
- Java中自定义枚举(Enum)项的值及int和Enum的互相转换
- Javascript 一些有趣的小地方