Java语言入门教程(九):Java语言中的值传递
来源:互联网 发布:2016最新网络伤感歌曲 编辑:程序博客网 时间:2024/04/27 14:28
在第八篇博文中,介绍了编写方法体必须了解的基本知识点,初学者已经可以自己写简单的例子进行练习。在练习过程中,我们不可能把所有的代码都放在main方法中,Java类一定会有或多或少的方法成员,调用这些方法将是必要的步骤。而调用方法成员时,如果该方法有参数,就必须要传递实际参数给方法的形式参数。所以了解Java语言中的值传递是非常必要的。
Java中的数据类型分两种,基本数据类型和引用类型。所以本文中也将分别对这两种数据类型的值传递特征进行介绍。
1.基本数据类型的值传递:基本数据类型传递的是值。
如下程序:
package com.csst.test;
public class Test5 {
/**
* @param args
*/
public void printX(int x){
x++;
System.out.println("printX: x="+x);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test5 test5=new Test5();
int x=10;
test5.printX(x);
System.out.println("main:x="+x);
}
}
运行结果如下:
printX: x=11
main:x=10
可见,基本数据类型x传递给printX方法时,仅仅将值10传递给参数x,所以参数x加1后,输出了11,而main方法中的x仍然为10。
2、引用类型
引用类型传递的是虚地址。
如下程序:
package com.csst.test;
public class Test6 {
/**
* @param args
*/
public void printName(Student stu){
System.out.println("printName: name is "+stu.getName());
}
public void printPwd(Student stu){
stu.setPwd("abcdef");
System.out.println("printPwd: pwd is "+stu.getPwd());
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test6 test6=new Test6();
Student stu1=new Student("Rose");
test6.printName(stu1);
System.out.println("main: name is "+stu1.getName());
Student stu2=new Student("John","123");
test6.printPwd(stu2);
System.out.println("main: pwd is "+stu2.getPwd());
}
}
class Student{
private String name;
private String pwd;
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Student() {
super();
}
public Student(String name) {
super();
this.name = name;
}
public Student(String name, String pwd) {
super();
this.name = name;
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
运行结果为:
printName: name is Rose
main: name is Rose
printPwd: pwd is abcdef
main: pwd is abcdef
在该类main方法中,将stu1和stu2传递给printName,printPwd时,是将stu1,stu2的虚地址传递给了对应的方法参数。因此,在printName,printPwd中打印出的name和pwd,与main中打印的name和pwd永远相同,尤其在printPwd方法中,通过参数改变了其pwd属性后,main方法中的stu2的pwd属性也随之变化,足以说明stu2与printPwd的参数本质上是一个对象。
通过本篇学习,可以基本了解Java语言中值传递的特征,进一步,初学者可以继续学习类与类之间的关系。
- Java语言入门教程(九):Java语言中的值传递
- Java语言入门教程(五):Java语言中的构造方法
- Java语言入门教程(十一):Java语言中的数组
- Java语言入门教程(十六):Java语言中的接口
- Java语言中的参数传递
- Java语言中的参数传递
- Java语言入门教程(七):Java类中的各种数据
- Java语言中的值传递与引用传递
- Java语言中的值传递与引用传递
- Java语言入门教程
- Java语言入门教程
- Java语言入门教程(四):Java语言中的数据类型及String类
- Java语言入门教程(六):Java语言中的static修饰符
- Java语言入门教程(八):Java语言中的运算符与流程控制
- Java语言入门教程(十):Java语言中的关联与依赖关系
- Java语言入门教程(十三):Java语言中继承中的构造方法问题
- 【转载】Java语言中的参数传递
- Java语言中的参数传递详解
- Verilog的模块与端口 语法
- Ext 2.0使用:对分页Ext.PagingToolbar的扩展
- Ext2.0框架的Grid使用介绍
- Xml中SelectSingleNode方法中的xpath用法
- SSH集成的核心代码
- Java语言入门教程(九):Java语言中的值传递
- Java语言入门教程(十):Java语言中的关联与依赖关系
- truncate,delete,drop 比较
- Ubuntu下修改root帐户密码
- Struts2 防止重复提交
- 找到个方便画图的好东西
- 合肥一学生高考“牛文”曝光 2009安徽高考作文《弯道超越》
- 评软件外包业在中国的发展
- ReSIProcate之header宏