java的参数传递机制概述,方法重载概述,以及相关案例
前言:
学了Java的传递机制,稍微记录一下。循循渐进,daydayup!
?java的参数传递机制概述
1,java的参数传递机制是什么?
java的参数传递机制是一种值传递机制。
2,值传递是什么?
值传递指的是,传输实参给方法形参的时候,实参存储的值的副本。
3,实参/形参是什么?
实参指的是在方法内部定义的变量。形参指的是方法定义时的变量。如下图:
基本类型和引用类型的参数在传递时有什么不同?
1,基本类型的参数传递
基本类型的参数传递是一种值传递,参数储存的是数据值
例:如图代码
public static void main(String[] args) {
int q =10;//
laal(q);
System.out.println("main"+q);
}
public static void laal(int q){
System.out.println("一次"+ q);
q = 20;
System.out.println("二次"+ q);
}
结果如下:即使在方法里q赋值成了20,在main里q依旧输出10;
2,引用类型的参数传递
?引用类型的参数传递同样是一种值传递,参数储存的是地址值
?例:如图代码
public static void main(String[] args) {
int [] lala = {1,2,3,4,5};
la( lala);
System.out.println("main"+lala [1]);
}
public static void la(int [] lala){
System.out.println("第一次"+lala[1]);
lala [1] = 20;
System.out.println("第二次"+lala[1]);
}
结果如下:当方法中数组里的数改变后,main中也随之改变(因为参数记录的是地址值,并不影响引用数值的改变)
?方法重载
1,什么是方法重载?
一个类中,多个方法的名称相同,但他们的形参列表不同
2,方法重载需要注意什么?
一个类中,只要一些方法的名称相同,形参列表不同(形参的个数,类型,顺序不同),那就是重载了
3,重载的应用场合是什么?
一类业务需要多种解决方案时(此时用方法重载特别专业)?
例:如图代码
public static void lala(){}
public static int lala(int a){ return a;}
public static int lala(int a,int b){return a +b ;}
?
综合案例
案例1,用方法,把数组{1,2,3,4,5}按照[1|2|3|4|5]格式输出
public class definedemo3 {
public static void main(String[] args) {
int [] lol = {1,2,3,4,5};
lala(lol);
}
public static void lala(int [] lol){
if(lol == null){
System.out.println("null");
return;//以防是null
}
System.out.print("[");//添加[
for (int i = 0; i < lol.length; i++) {//使数组循环输出
System.out.print(i == lol.length - 1 ? lol[i]:lol[i]+"|");
}//判断i是否等于数组最大长度,如果是则不输出|
System.out.println("]");//加上]
}
}
实验结果:
?
案例2:两个数组对比,如果一致,输出true
实验思路:判断两个是否null;再判断两个长度是否一样;再判断两个数是否相同;
public static void main(String[] args) {
int[] q1 = {1,2,3};
int[] q2 = {1,2,3};
System.out.println(lala(q1,q2));
}
public static boolean lala(int [] q1,int [] q2){
if (q1 == null && q2 == null){
return true;
}
if (q1 == null || q2 ==null){
return false;
}
if (q1.length != q2.length){
return false;
}
for (int i = 0; i < q1.length; i++) {
if (q1[i] != q2[i]){
return false;
}
}
return true;
}
实验结果:实验成功,一致输出true,不一致输出false
案例3 :设计两个模式,模式1为发射导弹;模式2为向指定地区发射导弹
public class overloaddemo1 {
public static void main(String[] args) {
fire(1);
fire("哈哈国",1);
}
public static void fire(int a){
System.out.println(a);
}
public static void fire(String con,int a ){
System.out.println("向"+con+"发射"+ a+"枚导弹");
}
}
实验结果:模式1为发射一枚导弹,模式2为向哈哈国发射1枚导弹
今日结束!
---------------------------------------------------------------------------------------------------------------------------------
最后
如果您看到了这篇文章,同时您也在学习java,希望您阅读这篇文章,希望与您一起讨论
?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!