重载的概念
在同一个类中,允许存在一个以上的同名的方法,只要它们的参数个数或者参数类型不同的话就行。
重载的特点
与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数、参数类型、参数排列顺序)
理解:就只要参数列表不要完全一样就行。和返回值类型无关。重载应该是为了解决方法名相同的问题。
方法的可变个数的形参
在遇到不知道要给方法传递多少个参数的时候就要考虑到使用可变个数的形参方式。比如统计一个钱包里装了什么东西,有的钱包可能只装了钱,但是其它的还会有银行卡,甚至还会在里面放照片。
可变参数:是指定部分类型的参数的个数可以变为多个,而不是参数的类型也可变。
使用数组来作为形参去定义方法:public static void test(int a,String[] args) 创建对象的时候要初始化值
以可变个数形参来定义方法:public static void test(int a,String... args) 创建对象的时候不必初始化值。
如果有多个类型的参数,可变参数一定要放在最后。比如除了可变参数类型还会有int类型,String类型等等。
方法的参数传递
方法必须需要类或对象调用才有意义。
形参:方法声明时的参数。决定这个方法可以放入哪些类型的数据,可以放多少数据。就相当于决定方法的容量和要装的东西。
实参:方法调用时实际传递给形参的参数值。相当于依照要求实际放入方法中的东西。
java的实参值是如何传入方法的呢?(主要引用数据类型与基础数据类型的区别)
java里方法的参数传递方式只有一种:值传递。就是将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。
方法的参数传递
1、如果方法的形参是基本数据类型,那么实参(实际的数据)向形参传递参数时,就是直接传递值,把实参的值赋值给形参。
2、如果方法的形参是对象,那么实参(实际的对象),向形参传递参数时,也是把值给形参,这个值是实参在栈内存中的值,也就是引用对象在堆内存中的地址。
基本数据类型都是保存在栈内存中,引用对象在栈内存中保存的是引用对象的地址,那么方法的参数传递是传递值(是变量在栈内存当中的值)。