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]+"}");	
    		}
    	}	
    
     
     }
  • 相关阅读:
    Window 窗口类
    使用 Bolt 实现 GridView 表格控件
    lua的table库
    Windows编程总结之 DLL
    lua 打印 table 拷贝table
    使用 xlue 实现简单 listbox 控件
    使用 xlue 实现 tips
    extern “C”
    COleVariant如何转换为int double string cstring
    原来WIN32 API也有GetOpenFileName函数
  • 原文地址:https://www.cnblogs.com/chendujie/p/6771542.html
Copyright © 2011-2022 走看看