java基础-什么是方法,方法的定义和调用,方法的重载,方法的内存
一、什么是方法
方法method是程序中最小的执行单元。
在实际开发中,可以将重复的代码、具有独立功能的代码抽取到方法中,这样可以提高代码的复用性和可维护性。
二、方法的定义(打包)和调用
注意:方法要写在main主方法的外面(在main方法外面定义)。
1、最简单的方法定义和调用
//最简单的方法定义格式 public static void 方法名(){ 方法体内容; }
//调用,调用之前一定要先定义 方法名();
2、带参数的方法定义和调用
形参:方法定义中的参数,也就是方法名旁边括号中的参数。
实参:方法调用的参数,也就是方法体中的参数。
注意:在方法中,形参和实参的数据类型一定要一致。
//带参数的方法定义 public static void 方法名(数据类型 变量名){ 方法体内容; } //例如: public static void method(int x,int y){ System.out.print(x+y); }
//调用 method(1,2);
3、带返回值的方法定义和调用
//带返回值的方法的定义 publict static 返回值类型 方法名(参数){ 方法体内容; return 返回值; } //例如: public static int getSum(int a,int b){ int c=a+b; return c; }
当方法有返回时,调用也分为直接调用、赋值调用、输出调用。
//直接调用 方法名(实参);
//赋值调用 整数类型 变量名=方法名(实参);
//输出调用 System.out.print(方法名(实参));
三、方法的重载
1、什么是重载
同一个类中,方法名相同,形参不同的方法。与返回值无关。
形参不同:个数不同,类型不同,顺序不同,满足其一即可。
2、方法重载练习
练习1
public static void main(String[] args) { //需求:使用方法重载的思想 //定义一个数组,要求输出[1,2,3,4,5] int[] arr = {1, 2, 3, 4, 5};//静态初始化数组 //调用 setArr(arr); } public static void setArr(int[] arr) { System.out.print("["); for (int i = 0; i < arr.length; i++) { if (i == arr.length - 1) { System.out.print(arr[i]); }else { System.out.print(arr[i]+","); } } System.out.print("]"); }
练习2
public static void main(String[] args) { /** * 需求:定义一个方法copyOfRange, * 将数组arr从索引from(包含from)开始, * 到索引to结束(不包含to)的元素复制到新数组中, * 将新数组返回。 * **/ //定义数组 int[] arr={1,2,3,4,5,6,7}; int[] copyArr= copyOfRange(arr,2,4); //遍历数组 for (int i=0;i<copyArr.length;i++){ System.out.print(copyArr[i]+" "); } } private static int[] copyOfRange(int[] arr,int from,int to) { int[] arr2=new int[to-from]; //伪造索引 int index=0; for (int i=from;i<to;i++){ arr2[index]=arr[i]; index++; } return arr2; }
四、方法的内存原理
栈:方法运行时使用的内存,方法进栈运行,运行完毕就出栈。
堆:new出来的,都会再堆内存中开辟一个小空间。
方法区:可以运行的class文件。
1、方法调用的基本内存原理
2、基本数据类型和引用数据类型
基本数据类型:数据值是存储在自己的空间,是直接存储在栈里面的,当变量赋值给其他变量时,会重新在栈中开辟一个新的空间给这个新的变量存储值。
比如:int a=10;
int b=a;这时,int b会在栈内存中重新开辟一个空间存储10这个实际的值,当我们修改int b=9时并不会影响int a。
基本数据类型有整数类型(byte、short、int、long)、浮点类型(floate、double)、字符类型char、布尔类型。
引用数据类型:凡是用到new的都是引用数据类型,数据值是存储在其他空间。存储在堆内存中。
作者:×不知该怎么√ 收藏一直进行,学习从未开始!地址https://www.cnblogs.com/hqh2021/p/17370040.html