java_方法

一、方法

1、方法的分类

静态方法—》类方法 有static修饰
成员方法—》实例方法 没有static修饰

2、方法执行过程

栈内存:方法运行的区域
堆内存:数据存放的区域
方法区:java代码存放的区域

当主方法调用其他方法时如a方法,a方法的代码会被加载进栈内存执行 当方法执行结束后,栈内存中会自动清除a方法,但是方法区中的a方法依然在。

请添加图片描述

3、按值传递和按引用传递

参数分为两种:形参实参
即按值传递和按引用传递

按值传递

此时复制的是值,不是值的引用地址
修改a对x没有影响
请添加图片描述

按引用传递

实参传递给形参的不是真实的数据,是数据所在的地址。就会造成实参和形参指向的是内存中同一个数据,事实上,这是同一个数据
请添加图片描述

当参数是基本数据类型时,数据不占用堆内存,是按值传递;当参数是引用类型时,数据会占用堆内存,按引用传递

应用

public class Day2 {
    public static void main(String[] args) {
        int[] a={9,8,7,6,5,4,3,2,1};
        sort(a);
        for (int x:a) {
            System.out.print(x+",");
        }
    }
/**
     * 定义一个方法,对一个整数类型的数组进行升序排序
     * @param arr 要排序的数组
     */
  

 1. List item

  public static void sort(int[] arr){
        Arrays.sort(arr);
    }
}

4、可变参数

	public static void main(String[] args) {
		int[] a={9,8,7,6,5,4,3,2,1};
        int x=1;
        int y=2;
        int z=3;
        showArray(x,y,z);//可以传单个变量
        showArray(a);//也可以传一个数组
    }
	/**
     *
     * @param arr  使用三点运算符时,可以传递n个参数,且都被存在arr数组中
     */
    public static void showArray(int... arr){
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

但是可变参数的使用是有要求的
注意事项

//        1.可变参数只能放在参数列表的最后一个参数
//        2.一个方法的参数列表只能有一个可变参数

5、方法的重载overload

概念引入
定义一个方法求两个整数的和
定义一个方法求两个byte变量的和
定义一个方法求两个short变量的和

上述的方法可以归为一类,他们的功能相同或相似,但是他们需要的参数是不同的

使用重载的要求?

在一个类中方法重名是可以的,方法名必须相同,参数列表一定不能相同,他会根据你的实参列表匹配多个同名方法中的某一个方法

参数可以有哪些不同?

1、个数不同
2、个数相同,类型相同,排列顺序不同
3、个数相同,类型不同

特殊的三点运算符
在这里插入图片描述
三点运算符和数组重载时也是会出错的,因为他俩本质上都是一个数组

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值