学习笔记-JAVA第四天

@Fcy

方法

1.方法的目的
在程序中,为了减少主方法中的代码量,增加代码的美感,可以将部分方法封装起来,在主方法中调用该方法实现该功能。
2.方法的定义
方法有四种类型:
1.无参无返回值类型的方法
public void 方法名(){
}
2.无参有返回值类型的方法
public 返回值的数据类型(如int)方法名(){
}
3.有参无返回值类型的方法
public void 方法名(参数){
}
4.有参有返回值类型的方法
public 返回值数据类型 方法名(参数){
}
参数可以一个或多个,也可以是任意数据类型,包括数组。

可变参数列表
int… n,表示参数为可变任意多个,是int类型的参数。

参数传递问题:

基本类型数据中,调用方法并不会改变主方法中定义的数值。例如:

public class Test2 {
    public void exchange(int a,int b){
        int temp;
        System.out.println("交换前的a:"+a+",b:"+b);
        temp =a;a=b;b =temp;
        System.out.println("交换后的a:"+a+",b:"+b);
    }

    public static void main(String[] args) {
        int a =10,b=20;
        System.out.println("交换前的值是:"+a+"  "+b);
        Test2 test2 = new Test2();
        test2.exchange(a,b);
        System.out.println("交换后的值是:"+a+"  "+b);
    }
}

结果为:
基本数据类型传值
这里可以看到,主方法中定义的a,b只是把该值传给了方法中的参数a,b,在方法里面a,b的值才进行交换,并不会影响主方法中定义的a,b本来的值。

当然,在数组中,情况就有些大相径庭。数组里会直接改变主方法中的数组,得到一个新的数组。

//测试参数为数组方法的传值问题
public class Test3 {
    public void change(int[] arr){
        arr[3]=10;
        System.out.println("调用方法后的数组:");
        for (int n:arr){
            System.out.print(n+" ");
        }
    }
    public static void main(String[] args) {
        int[] arr ={10,40,30,60};
        Test3 t3 =new Test3();
        System.out.println("改变前的数组:");
        for (int n:arr){
            System.out.print(n+" ");
        }
        System.out.println();
        t3.change(arr);
        System.out.println();
        System.out.println("改变后的数组:");
        for (int n:arr){
            System.out.print(n+" ");
        }
    }
}

结果:
在这里插入图片描述
可以看到,调用方法后,数组也发生了变化。这是因为方法中的参数数组是引用类型,所以它是会直接进入方法里运行,从而发生改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值