参数问题(方法上的形参是引用/基本数据类型)
1、当方法上的形参是引用数据类型(类)
类是一个引用数据类型,可以当作形参的数据类型;
当今后看到一个方法上的形参是一个引用数据类型的时候
实际上它需要的是一个对应类的对象的地址值
定义一个动物叫的方法
//先定义一个动物类
class Animal {
//再定义一个叫的方法
public void shout(){
System.out.println("叫一叫");
}
}
=====================================
//再定义一个类(并不是测试类)
class Demo1{
//在该类中的参数是Animal a
public void fun1(Animal a){
a.shout();
}
}
======================================
//再定义一个测试类,想要调用fun1方法
class Test {
public static void main(String[] args) {
//创建Demo1对象,来调用fun1这个方法
Demo1 x = new Demo1();
//创建Animal对象
Animal y = new Animal();
x.fun1(y);
}
}
执行结果如下:
叫一叫
Process finished with exit code 0
========================================
/*
在测试类中调取fun1这个方法,需要传入参数y
但是这个参数y是一个类:Animal
实际上它需要的是一个对应类的对象的地址值
所以在x.fun1(y);之前要创建一个Animal对象,才能得到地址值
所以第一个y就代表着new Animal,将new Animal传入给x.fun1(y)的y
然后x.fun1(y)的y传入到fun1方法里去了
就代表Animal a = y = new Animal
*/
总结:测试类调用fun1,实际上调用的就是Animal类中的shout方法
当看到一个类中的方法,其参数是一个引用数据类型,那么在测试类调用该方法的时候,
除了要创建该方法对应的对象外,还要在该方法前面创建一个引用数据类型对应的对象
2、当方法上的形参是基本数据类型
当方法的参数是基本类型的时候,
调用该方法的时候,传入的是该基本数据类型实际的值
//创建一个类,类中有求和的方法
//先创建一个类
class Demo2{
//再创建求和的方法
public void fun2(int m,int n){
System.out.println(m+m);
}
}
//创建一个测试类
class Test2{
public static void main(String[] args) {
//创建Demo2对象
Demo2 xx = new Demo2();
//调用Demo2中的fun2方法
xx.fun2(10,20);//直接输入你想要的值
/*或者
int i =10;
int j =20;
xx.fun2(i,j);
*/
}
}
执行结果如下:
20
Process finished with exit code 0