iwehdio的博客园:https://www.cnblogs.com/iwehdio/
1、方法
解决代码重复的问题,是完成特定功能的代码块
- 定义格式:
//定义格式
/*
修饰符 返回值类型 方法名(参数类型 参数1,参数类型 参数2,...){
方法体;
return 返回值;
}
修饰符:如public static;
返回值类型:返回值的数据类型;
参数类型:调用方法时,传入的数据类型
*/
public static int sum(int a,int b){
int c = a + b;
return c;
}
-
写方法前:
- 明确返回值类型,明确功能结果的数据类型。
- 明确参数列表,明显参数的个数和类型。
-
方法调用
- 只有明确返回值的方法调用:单独调用没有意义,可以输出调用,应该赋值输出。
-
求和方法及调用
public static void main(String[] args) {
int res = sum(10,20);
System.out.println(res);
}
public static int sum(int a, int b){
int c = a + b;
return c;
}
-
void修饰符
- 用于没有明确返回值类型的方法,表示无返回值。
- 调用时只能单独调用。
-
方法的参数如果是基本数据类型,形式参数的改变不影响实际参数。
- 实际参数:实际参与运算的变量。
- 形式参数:方法中用于接收实际参数的变量。
-
方法区存储了类的字节码文件,其中包含了类下的方法。
- 调用时方法加载到栈内存。
- 方法调用完成后,从栈内存中消失。
-
方法的参数如果是引用数据类型,形式参数的改变直接影响实际参数。
-
方法的参数是引用数据类型(如数组)时,方法接收的实际上是数组的地址,对数组进行操作直接改变了数组地址指向的堆内存中的数组的值。
-
数组求和
public static void main(String[] args) { int[] arr = {5,6,7,8,9}; System.out.println(sumarr(arr)); } public static int sumarr(int[] arr){ int sum = 0; for(int i=0;i<arr.length;i++){ sum += arr[i]; } return sum; }
2、重载
同一个类中出现了方法名相同的现象
-
方法名相同,且参数列表不同(参数的个数不同或参数对应的数据类型不同)。
-
与返回值无关。
-
在调用方法时,Java通过参数列表不同来区分方法。
-
可以通过强制转换来调用不同的重载方法。
-
不同类型数组求和(重载)
public static void main(String[] args) { System.out.println(sum(2,3)); System.out.println(sum(2.2F,2.1F)); } public static int sum(int a,int b){ return a + b; } public static float sum(float a, float b){ return a + b; }
3、断点调试
- 查看程序的执行流程。
- 调试程序。
-
Eclipse如何加断点:代码和行号左边双击。
-
代码区域 > 右键 > Debug As > Java Application > 选择进入Debug视图。
-
进入Debug视图后,点 Step over(F6)单步执行。
- Debug区域:程序的执行流程;
- Variables:变量的变换;
- Console:程序的输入输出。
-
去除多个断点:Debug视图下的Breakpoint下的双×按钮。
-
要查看被调用方法的执行流程,需要在被调用方法中也添加断点。
4、基础语法
-
case穿透,忘写break会一直向下执行直到遇到break。
switch (month) { case 3: case 4: case 5: System.out.println('春'); break; case 6: case 7: case 8: System.out.println('夏'); break; case 9: case 10: case 11: System.out.println('秋'); break; case 12: case 1: case 2: System.out.println('冬'); break; default: System.out.println("误"); break; }
-
数组反转
public class Arr_resever { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[5]; for(int x =0;x<5;x++){ arr[x]=sc.nextInt(); } print_arr(arr); reserve_arr(arr); print_arr(arr); } public static void reserve_arr(int[] arr){ for(int s=0,e=arr.length-1;s<=e;s++,e--){ int temp = arr[s]; arr[s] = arr[e]; arr[e] = temp; } } public static void print_arr(int[] arr){ System.out.print("["); for(int x=0;x<arr.length;x++){ if(x==arr.length-1){ System.out.println(arr[x]+"]"); }else{ System.out.print(arr[x]+", "); } } } }
iwehdio的博客园:https://www.cnblogs.com/iwehdio/