在学方法的时候,我们会学到如何在主方法中调用方法。在调用方法的时候会涉及到参数传递和返回值的问题,今天,我们就谈谈方法中的参数传递和返回值。
参数传递
简单来讲,方法的参数传递,无非就是调用方法的时候,传递值或者引用,用形式参数类接收值或者引用,进而在方法中使用形式参数。
具体点讲,参数传递的时候,实参类型不同的话,就需要用不同类型的形参来进行接收。
注意:实参可以和形参不同,两者互不影响。
下面就分类型来谈谈参数传递。
基本数据类型
基本数据类型的变量进行参数传递的时候,需要用基本数据类型的形式参数进行接收。
特点:基本数据类型在传递参数的时候,传递的是变量(实参)的值,在方法中用形式参数进行接收,且对形式参数进行一系列操作如赋值,并不会改变实参的值。所以,这样的参数传递也称为值传递。
引用类型
引用类型的量在进行参数传递的时候,需要用引用类型的形式参数进行接收。
数组以及面向对象中的类等都是引用类型。
特点:引用类型在参数传递的视乎,传递的是引用(即地址值),在方法中用形式参数进行接收,且对形式参数进行一系列操作的时候,会改变引用指向的内存空间的值。所以,这样的参数传递也称为引用(地址)传递。
在学习面向对象的时候,我们遇到了类、抽象类、接口等概念。若参数传递时,需要的是这些类型,那么我们如何进行参数传递呢?
类
若方法中参数传递需要的是一个类 类型,那么我们需要传递的是该类的一个对象。类是一个抽象的概念。对象是类的具体、实例化,我们可以对对象进行操作,但是我们无法对类进行操作。
抽象类
若方法中参数传递需要的是一个抽象类 类型,那么我们需要传递的是该抽象类的一个子类对象。(抽象类不能实例化,可以采用多态形式)
接口
若方法中参数传递需要的是一个接口 类型,那么我们需要传递的是该接口的一个子类对象。(接口不能实例化,可以采用多态形式)
返回值
根据方法的返回值类型来判断我们是否需要返回一个值。若方法返回值类型为void,那么该方法就不需要返回值。除此之外,就需要根据方法返回值类型来返回对应的值。返回值有点类似参数传递。
根据返回值类型的不同来具体谈谈返回值。
基本数据类型
若方法的返回值类型为基本数据类型,那么就返回该数据类型对应的值。
引用数据类型
若方法的返回值类型为引用数据类型,那么就返回该引用类型的对应的值(如数组)或者对象(如类)。
数组
若返回值类型为数组,那么直接返回数组名即可。
类
若返回值类型为类 类型,那么需要返回的是该类的一个对象。
抽象类
若返回值类型为抽象类 类型,那么需要返回的是该抽象类的一个子类对象。(抽象类不能实例化,可以采用多态形式)
接口
若返回值类型为接口 类型,那么需要返回的值该接口的一个子类对象。(接口不能实例化,可以采用多态形式)
针对方法的参数传递和返回值问题,可以总结如下:
一:若方法的形参或者返回值,要一个基本数据类型,那么就传入或者返回该基本数据类型的值。
二:若方法的形参或者返回值,要一个引用数据类型,那么就传入或者返回该引用。
- 若方法的形参或者返回值,要一个数组类型,那么就传入或者返回数组名。
- 若方法的形参或者返回值,要一个类 类型,那么就传入或者返回该类的一个对象。
- 若方法的形参或者返回值,要一个抽象类 类型,那么就传入或者返回该抽象类的一个子类对象。(抽象类不能实例化,可以采用多态形式)
- 若方法的形参或者返回值,要一个接口 类型,那么就传入或者返回该接口的一个子类对象。(接口不能实例化,可以采用多态形式)