黑马程序员---函数与数组总结

---------------------- android培训java培训、期待与您交流! ----------------------

 

一,函数
  (1)函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。
 

(2)函数的格式
           修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…) {
                执行语句;
                  return 返回值;
                  }
  
  A:修饰符 。public   static
  B:返回值类型 这个特定的功能完成后,需要返回一个结果。这个地方就是返回结果的类型。
  C:函数名 为了方便使用这个函数,给它起个名字。这个名字要符合标识符命名规则。
  D:参数类型 形式参数的数据类型
   **:形式参数 自定义的接收方
   **:实际参数 发出方add(3,5)
  E:执行语句 那么这个语句是由多条语句组成。
  F:return 这个功能执行完以后,需要有一个返回值,那么这个值有关键字return带回。
 

(3)函数的特点
  A:一般函数只有被调用后,才执行。
  B:void 表示没有返回。在这个函数的结尾可以不写return。
   **其实jvm会自动的结尾处加上return;
 

(4)如果定义自己的函数 两个明确
  A:明确该功能的结果 其实就是该功能的返回类型。
  B:明确该功能的参数 其实就是明确该功能中是否需要未知内容(形式参数)参与运算。
        明确未知内容的类型和个数。

 (5)函数的重载
  A:函数名相同,参数列表不同。 
   **参数类型不同。int add(int i)void add(double d)
   **参数个数不同。add(int a,int b);add(int a,int b,int c)
   **参数顺序不同 
  B:特点:与返回值类型无关,只看参数列表。
  C:好处:便于阅读,优化程序设计。

 

二,数组
 (1)同一种类型数据的集合。其实数组就是一个容器。
  
 (2)数组的好处
  int[] arr = new int[5];
  arr[3] = 10;
  A:可以自动给数组中的元素从0开始编号,方便操作这些元素。
 

(3)数组的定义格式
  A:当不明确数组中的元素时
   **举例

 int[] arr = new int[3];//动态初始化
   arr[0] = 3;



  B:当明确数组中的元素时
   **举例

 

int[] arr = new int[]{1,2,3,4,5};//静态初始化
       int[] arr = {1,2,3,4,5};



    
 (4)什么时候使用数组?
  A:当要操作的同种数据类型的数据是多个的时候,你就得想着先把这些数据用数组进行存储。

 

三,常见的数组的操作
 
  A:遍历操作
   **数组的属性:length 数组的长度。
   **格式:数组名.length
  

for (int x=0;x < arr.length ;x++ ){
   System.out.println("arr["+x+"]="+ arr[x]);
  }


 

B:
   **获取最大值
   

public static void main(String[] args) {
    int[] arr = {3,2,1,4,5,6};
    //int x = getMax(arr);
    //System.out.println(x);
   }
   public static int getMax(int[] arr){
    int max = arr[0];
    
    //i从1开始,因为第一个数不用跟自己比
    for(int x=1; x<arr.length; x++) {
     if(arr[x]>max) {
      max = arr[x];
     }
    }

    return max;
   }

**获取最小值
  

 public static int getMin(int[] arr) {
    int min = arr[0];
    
    //i从1开始,因为第一个数不用跟自己比
    for(int i=1; i<arr.length; i++) {
     if(arr[i]<min){
      min = arr[i];
     }
    }

    return min;
   }


C:排序
   **选择排序
   原理:如果拿0角标上的元素依次和后面的元素进行比较,
                       第一次内循环结束后,最小值出现在了0角标位置。
   arr[0]与arr[1-5]比了五次
   arr[1]与arr[2-5]比了四次
   arr[2]与arr[3-5]比了三次
   arr[3]与arr[4-5]比了二次
   arr[4]与arr[5]比了一次

for (int x = 0;x < arr.length - 1;x++){
				for (int y = x + 1;y < arr.length;y++){
					if (arr[x] > arr[y]){
						int temp = arr[x];
						arr[x] = arr[y];
						arr[y] = temp;
					}
				}
			}


**冒泡排序
   原理:两个相邻元素进行比较,第一次比较完以后,最大值出现在了最大角标处。

for (int x = 0;x < arr.length - 1; x++){
				//-1防止角标越界
				//-x为了提高效率
				for (int y = 0;y < arr.length - 1 - x;y++){//6
					if (arr[y] > arr[y+1]){
						int temp = arr[y];
						arr[y] = arr[y+1];
						arr[y+1] = temp;
					}
				}
			}

 

D:传递参数
   **调用的时候,传递是基本类型的值的时候,形参改变对实参没有任何影响。
   **调用的时候,传递是引用类型的地址的时候,形参改变对实参有直接影响。

 

 

 

---------------------- android培训java培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值