zoukankan      html  css  js  c++  java
  • java day04第四课函数(方法)及数组

    函数和数组

    一、函数

    1、函数的定义

    1.1 函数就是定义在类种的具有特定功能的一段独立小程序,函数也称之为方法。	
    1.2 函数的格式1:修饰符  返回值类型 函数名(参数类型 参数1,参数类型 参数2){
    	执行语句
    	return 返回值;
    }
    返回值类型:函数运行后的结果的数据类型。
    参数类型:是参数的数据类型。
    参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
    return:用于结束函数。
    返回值:返回运行的结果值给我们的调用此方法的人。
    1.3 函数的格式2:修饰符  void 函数名(参数类型 参数1,参数类型 参数2){
    	执行语句
    	return 返回值;
    }
     当函数运算后,没有具体的返回值时,这时返回类型用一个特殊的关键字来标识。该关键字就是void,void代表的是函数没有返回值。我们就可以省略掉return,如果加上也没错,不写的话,程序在编译的时候自动给我们加上。
    

    2、函数的特点

    2.1 定义函数可以讲功能代码进行封装。
    2.2 便于对该功能进行复用。
    2.3 函数只有被调用才会被执行。
    2.4 函数的出现提高了代码的复用性。
    

    注意:

    (1)、函数中只能调用函数,不可以再函数内部定义函数。
    (2)、定义函数时,函数的结果应该返回给调用者,交由调用者处理。
    

    3、函数的应用

    3.1如何定义一个函数呢?

    (1)、既然函数是一个独立的功能,那么该功能的运算结果是什么先要明确。(因为这事在明确函数的返回类型)
    (2)、在明确定义该功能的过程中是否需要位置的内容参与运算。(因为这是在明确函数的参数列表(参数的类型和参数的个数))。
    

    4、函数的重载(overload)

    4.1 重载的概念

    在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
    

    4.2 重载的特点

    与返回类型无关,只看参数列表
    

    4.3 重载的好处

    方便阅读,优化了程序设计
    

    二、数组

    一维数组

    概念

    同一种类型数据的集合,其实数组就是一个容器。
    

    数组的好处

    可以自动给数组中的元素从0开始变好,方便操作这些元素。
    

    格式1

    元素类型[]  数组名 = new 元素类型[元素个数或者数组长度];
    示例:
    	int[] arr = new int[5]; 
        arr[0] = 1;
        arr[1] = 2;
        System.out.println("arr[0]的值为:"+arr[0]);
        System.out.println("arr[1]的值为:"+arr[1]);
        System.out.println("arr[2]的值为:"+arr[2]);
        System.out.println("arr[3]的值为:"+arr[3]);
        System.out.println("arr[4]的值为:"+arr[4]);
    //	System.out.println("arr[5]的值为:"+arr[5]);//这里
    会报错,因为这里访问到了数组不存在的角标上;
    

    格式2

    元素类型[] 数组名 = new 元素类型[]{元素,元素,......};
    int[] arr = new int[]{3,5,1,7};
    int[] arr1 = {1,3,5,4,7};
    

    二维数组

    格式1

    int[][] arr = new int[4][5];
    注释:
    定义了一个叫做arr的二维数组;
    二维数组中有4个一维数组;
    每一个一维数组里面有5个元素;
    给第一个一维数组里面的角标为1的赋值为3的写法是:arr[0][1] = 3;
    

    格式2

    int[][] arr = new int[3][];
    注释:
    二维数组中有3个一维数组
    每个一维数组都是默认的为null;
    我们可以对三个一维数组进行初始化;
    arr[0] = new int[1];
    arr[1] = new int[2];
    arr[2] = new int[3];
    

    循环遍历数组

    	int[] arr = new int[8];
    	//循环遍历出数组里面的元素 数组中有一个属性可以
    	//直接获取到数组元素的个数(.length).使用方式:
    	数组名.length;	
    	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]+"}");	
    		
    		}
    	}	
    //利用java自带方法输出	
    System.out.println(Arrays.toString(arr));
    

    获取数组的最值(最大值和最小值)

    思路:
    1、获取最值需要进行比较,每一次比较都会有一个较大的值,因为该
    值不确定,需要一个变量进行临储。
    2、让数组中的每一个元素都和这个变量中的值进行比较,如果大于了
    变量中的值,就用该变量记录较大值。
    3、当所有的元素都比较完成,那么该变量中存储的就是数组中最大值
    实现:
    //最大值
    int arr[] = {1,2,3,4,5};
    int max = arr[0];
    for(int i = 0;i < arr.length;i++){
    	if(arr[i] > max){
    	 	max = arr[i];
    	}
    }
    System.out.println("数组arr最大值为:"+max);
    //最小值
    int min = arr[0];
    for(int i = 0;i < arr.length;i++){
    	if(arr[i] < min){
    	 	max = arr[i];
    	}
    }
    System.out.println("数组arr最小值为:"+min);
    

    选择排序

    //选择排序是依次和后面的元素进行比较,如从大到小排序,第一次循环结束比较得到最小值
    int arr[] = {1,2,3,4,5};
    for(int i = 0;i < arr.length-1;i++){
    	for(int a = i+1;a<arr.length;a++){
    	   if(arr[i] > arr[a]){//判断条件
                         int temp = arr[a];//定义一个临时变量来存储,方便交换
    	        arr[a] = arr[i];
    	        arr[i] = temp;
    		}
    	}
    }
    
    System.out.print("{");
    	for(int b = 0;b < arr.length;b++){
    		if(b != arr.length-1){
    		 System.out.print(arr[b]+",");
    		}else{
    		System.out.print(arr[b]+"}");	
    		}
    	}	
    

    冒泡排序

    //冒泡排序是两两进行比较,如从大到小排序,第一次外层循环结束后得到的是一个最小值
    int arr[] = {1,2,3,4,5};
    for(int i = 0;i < arr.length-1;i++){
    	for(int a = 0;a<arr.length-1-i;a++){//-i是让每一次
    						//比较的元素减少,-1是避免角标越界
    		if(arr[a] > arr[a+1]){
    			int temp = arr[a];//同选择排序一样交换,原理和水杯换水一样
    			arr[a] = arr[a+1];
    			arr[a+1] = temp;
    		}
    	}
    }
    
    System.out.print("{");
    	for(int b = 0;b < arr.length;b++){
    		if(b !=arr.length-1){
    		 System.out.print(arr[b]+",");
    		}else{
    		System.out.print(arr[b]+"}");	
    		}
    	}	
    

    封装方法

    从我们的选择排序和冒泡排序里我们可以看到有很多相同的代码,我们
    可以把这些相同的代码提取出来封装为方法;比如我们的判断交换和遍
    历输出:
    抽取1:
    public static void PanDuan(int[] arr,int a,int b)
    {
    	if(arr[a] > arr[b]){
    		int temp = arr[a];
    		arr[a] = arr[b];
    		arr[b] = temp;
    	}
    }
    抽取2:
     public static void BianLi(){
     	
     	System.out.print("{");
    	for(int b = 0;b < arr.length;b++){
    		if(b != arr.length-1){
    		 System.out.print(arr[b]+",");
    		}else{
    		System.out.print(arr[b]+"}");	
    		}
    	}	
    
     
     }
  • 相关阅读:
    Js 之获取QueryString的几种方法
    Go语言 之md5加密
    跨域取文件(跨项目)
    System.IO
    System.Threading.Tasks
    JS存取Cookies值,附自己写的获取cookies的一个方法
    HttpServerUtility 和 HttpUyility
    JS格式化时间
    JS获取页面传过来的值
    Navigator 对象
  • 原文地址:https://www.cnblogs.com/chendujie/p/6771542.html
Copyright © 2011-2022 走看看