资讯专栏INFORMATION COLUMN

Java中方法参数的总结

YanceyOfficial / 1841人阅读

摘要:方法参数方法得到的都是所有参数值的拷贝,方法不能修改传递给它的任何参数变量的内容。很容易得知,一个方法不可能改变一个基本数据类型的参数,下面讨论参数的对象的情况。方法结束之后,不再使用。但是执行完该方法后,和所引用的对象并没有改变。

方法参数

方法得到的都是所有参数值的拷贝,方法不能修改传递给它的任何参数变量的内容。
参数共有两种类型:

基本数据类型

对象引用

除了基本数据类型的都是对象引用,包括数组等等。

很容易得知,一个方法不可能改变一个基本数据类型的参数,下面讨论参数的对象的情况。
下面这个方法可以将一个雇员的薪金提高两倍

public static void tripleSalary(Employee x)
{
    x.raiseSalary(200);
}

当调用

harry = new Employee(...);
tripleSalary(harry);

时,执行过程如下:

x被初始化为harry值的拷贝,x是对象的引用。x和harry同时指向相同的对象。

raiseSalary方法应用于这个对象引用。x和harry同时引用的那个Employee对象的薪金提高了200%。

方法结束之后,x不再使用。harry继续引用那个增长了薪金的对象

Java中都是值传递,而不是引用传递

下面这个方法用来交换两个雇员对象(其实做不到):

public static void swap(Employee x, Emploee y)//doesn"t work
{
    Employee temp = x;
    x = y;
    y = temp;
}

如果Java对对象采用的是按引用(地址)调用那么这个方法可以实现两个对象交换数据的效果。

Employee a = new Employee("Alice",...);
Employee b = new Employee("Bob",...);
swap(a,b);

但是执行完该方法后,a和b所引用的对象并没有改变。x和y在方法执行过程中所引用的对象改变了,但是a和b引用的对象并没有改变,因为x和y只是“复制品”。
这个过程说明,对象引用也是按值传递的。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75172.html

相关文章

  • Java 泛型总结(一):基本用法与类型擦除

    摘要:然而中的泛型使用了类型擦除,所以只是伪泛型。总结本文介绍了泛型的使用,以及类型擦除相关的问题。一般情况下泛型的使用比较简单,但是某些情况下,尤其是自己编写使用泛型的类或者方法时要注意类型擦除的问题。 简介 Java 在 1.5 引入了泛型机制,泛型本质是参数化类型,也就是说变量的类型是一个参数,在使用时再指定为具体类型。泛型可以用于类、接口、方法,通过使用泛型可以使代码更简单、安全。然...

    Java_oldboy 评论0 收藏0
  • 超详细Java面试题总结(四 )之JavaWeb基础知识总结

    摘要:系列文章请查看超详细的面试题总结一之基础知识篇超详细的面试题总结二之基础知识篇超详细的面试题总结三之集合篇常见问题下面的都是自己之前在学习的时候总结的,对于巩固的基础知识应该有很大帮助。注意多线程的并发的读写类属性会导致数据不同步。 系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(...

    Leo_chen 评论0 收藏0
  • 超详细Java面试题总结(一)之Java基础知识篇

    摘要:最近在备战面试的过程中,整理一下面试题。成员变量如果没有被赋初值,则会自动以类型的默认值而赋值一种情况例外被修饰但没有被修饰的成员变量必须显示地赋值而局部变量则不会自动赋值。   最近在备战面试的过程中,整理一下面试题。大多数题目都是自己手敲的,网上也有很多这样的总结。自己感觉总是很乱,所以花了很久把自己觉得重要的东西总结了一下。 面向对象和面向过程的区别 面向过程:  优点:性能比面...

    vpants 评论0 收藏0
  • Java知识点总结(面向对象)

    摘要:知识点总结面向对象知识点总结面向对象面向对象概念是相对于面向过程而言,过程其实就是函数,对象是将函数和属性进行了封装。指向了该对象关键字代表对象。静态变量所属于类,所以也称为类变量成员变量存在于堆内存中。 Java知识点总结(面向对象) @(Java知识点总结)[Java, Java面向对象] [toc] 面向对象概念 是相对于面向过程而言,过程其实就是函数,对象是将函数和属性进行了封...

    itvincent 评论0 收藏0
  • Java知识点总结Java泛型)

    摘要:知识点总结泛型知识点总结泛型泛型泛型就是参数化类型适用于多种数据类型执行相同的代码泛型中的类型在使用时指定泛型归根到底就是模版优点使用泛型时,在实际使用之前类型就已经确定了,不需要强制类型转换。 Java知识点总结(Java泛型) @(Java知识点总结)[Java, Java泛型] [toc] 泛型 泛型就是参数化类型 适用于多种数据类型执行相同的代码 泛型中的类型在使用时指定 泛...

    linkin 评论0 收藏0

发表评论

0条评论

YanceyOfficial

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<