参数传递
程序员文章站
2022-05-09 20:34:39
...
1、JAVA中的数据类型有两大类
一是基本数据类型:
a. byte 字节型 1字节 8位 取值范围(-128~127)
b. short 短整型 2字节 16位 (-2^15~2^15-1)
c. int 整型 4字节 32位 (-2^31~2^31-1)
d. long 长整型 8字节 64位 (-2^63~2^63-1)
e. float 单精度 4字节 32位 (-2^31~2^31-1)(科学计数法)
f. double 双精度 8字节 64位 (-2^63~2^63-1)(科学计数法)
g. char 字符型 2字节 16位 (0~2^16-1)
h. bool 布尔型 true和false
内存分配:变量名和值一般存在栈中,例如 int i=10; i 和 10 都存在栈空间中。
二是引用类型(类类型):
通过类创建的对象的变量名,所有用class,interface,abstract class定义的类和接口以及数组都属于该类型。
内存分配:在堆中创建新的空间,存储该类的属性及方法,栈中的变量名存储该内存空间的首地址,例如 Student a =new Student(); a存在栈中,a中的内容为在堆中新开辟的内存空间的首地址,该内存空间存储Student类的属性和方法。
2、值传递
值传递适用于基本数据类型和String类。不改变变量的地址,只传值。比如 张三的一份作业,借给别人参考,别人抄完后并自己修改了一点,这时另一个人再借张三的作业,仍然是那份作业并没有改动。
代码实例:
运行结果:
3、引用传递
引用传递适用于引用类型,String类除外。引用传递的传递方式:传地址,改变变量的地址。比如 张三的作业交给老师批改,老师直接在上面写上批语,张三再拿回作业时已经是被批注过的作业了。
代码实例:
运行结果:
4、参数传递的方法:构造方法和普通方法
构造方法传参,是在创建对象时传入参数,对对象进行初始化;
普通方法传参,是在通过一般方法传入参数,两种方法无本质区别,均是传入参数。
一是基本数据类型:
a. byte 字节型 1字节 8位 取值范围(-128~127)
b. short 短整型 2字节 16位 (-2^15~2^15-1)
c. int 整型 4字节 32位 (-2^31~2^31-1)
d. long 长整型 8字节 64位 (-2^63~2^63-1)
e. float 单精度 4字节 32位 (-2^31~2^31-1)(科学计数法)
f. double 双精度 8字节 64位 (-2^63~2^63-1)(科学计数法)
g. char 字符型 2字节 16位 (0~2^16-1)
h. bool 布尔型 true和false
内存分配:变量名和值一般存在栈中,例如 int i=10; i 和 10 都存在栈空间中。
二是引用类型(类类型):
通过类创建的对象的变量名,所有用class,interface,abstract class定义的类和接口以及数组都属于该类型。
内存分配:在堆中创建新的空间,存储该类的属性及方法,栈中的变量名存储该内存空间的首地址,例如 Student a =new Student(); a存在栈中,a中的内容为在堆中新开辟的内存空间的首地址,该内存空间存储Student类的属性和方法。
2、值传递
值传递适用于基本数据类型和String类。不改变变量的地址,只传值。比如 张三的一份作业,借给别人参考,别人抄完后并自己修改了一点,这时另一个人再借张三的作业,仍然是那份作业并没有改动。
代码实例:
public class Test { public static void main(String [] args){ //实例化一个对象 Test t=new Test(); int i=10; //调用方法,在方法中改变i值 t.change(i); System.out.print("i:"+i); } public void change(int i){ i=20; } }
运行结果:
3、引用传递
引用传递适用于引用类型,String类除外。引用传递的传递方式:传地址,改变变量的地址。比如 张三的作业交给老师批改,老师直接在上面写上批语,张三再拿回作业时已经是被批注过的作业了。
代码实例:
public class Student { private String name; //设置学生姓名的方法 public void setName(String name){ this.name =name; } //获取姓名的方法 public String getName(){ return name; } } public class Manager { public static void main (String[] args){ //实例化学生对象 Student stu1=new Student(); Student stu2=new Student(); //设置第一个学生姓名 stu1.setName("李玉"); //将第一次创建的学生类的首地址传给stu2 stu2=stu1; //设置姓名 stu2.setName("王林"); System.out.print("stu1:"+stu1.getName()); } }
运行结果:
4、参数传递的方法:构造方法和普通方法
构造方法传参,是在创建对象时传入参数,对对象进行初始化;
普通方法传参,是在通过一般方法传入参数,两种方法无本质区别,均是传入参数。