zoukankan      html  css  js  c++  java
  • Java SE入门(四)——函数与方法

    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、断点调试

    1. 查看程序的执行流程。
    2. 调试程序。
    • 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/

  • 相关阅读:
    js-21点小游戏
    js-打印出现最多次的字母
    盒模型浮动
    九九乘法表
    猫眼-湄公河行动电影介绍页面
    (day4)用css画三角形以及红旗
    cookie的使用
    用Servlet校验密码2
    Servlet登录验证
    Servlet概述
  • 原文地址:https://www.cnblogs.com/iwehdio/p/12196177.html
Copyright © 2011-2022 走看看