参数传递

来源:互联网 发布:齐次变换矩阵 编辑:程序博客网 时间:2024/06/05 22:33
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类。不改变变量的地址,只传值。比如 张三的一份作业,借给别人参考,别人抄完后并自己修改了一点,这时另一个人再借张三的作业,仍然是那份作业并没有改动。
   代码实例:
    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("李玉");//将第一次创建的学生类的首地址传给stu2stu2=stu1;//设置姓名stu2.setName("王林");System.out.print("stu1:"+stu1.getName());}}

运行结果:

4、参数传递的方法:构造方法和普通方法
   构造方法传参,是在创建对象时传入参数,对对象进行初始化;
   普通方法传参,是在通过一般方法传入参数,两种方法无本质区别,均是传入参数。