重载 数组-创建 排序[选择.冒泡]

函数
  1.定义
定义在类中的具有特定功能的一段独立小程序,又称方法。
为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数

2.格式:

  黑马程序员_复习_Day02 - 九五二七 - 今天

参数类型:函数要接收的数据不确定,只能定义成形参。因为函数有特定功能如求平方,就可以输入任意数,所以不能确   定是3还是5,只能定义它的类型,如int a.

形式参数:就一变量。用于存储调用函数式传递给函数的实际参数。(相当于一个存储空间)。

实际参数:就是实际参与运算的数值。

黑马程序员_复习_Day02 - 九五二七 - 今天               return把值返给谁:谁调用就返给谁黑马程序员_复习_Day02 - 九五二七 - 今天

当函数没有具体的返回值时,返回的返回值类型用void关键字表示。

如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。

return的作用:结束函数。结束功能 

3.作用:

a.用于定义功能

b.用于封装代码提高代码的复用性

注意:函数中只能调用函数,不能定义函数

4.如何定义一个函数?

    函数其实就是一个功能,定义函数就是实现功能,通过两个明确来完成:

    a.明确该功能的运算完的结果,其实是在明确这个函数的返回值类型。

    b.在实现该功能的过程中是否有未知内容参与了运算,就是在明确函数的参数列表(参数类型&参数个数)

    黑马程序员_复习_Day02 - 九五二七 - 今天               记住两个明确:明确返回值;明确参数列表。

         (如果功能室打印…其返回值为void,因为打印出去了,故没有返回值)

举例:定义功能,比较两个整数是否相等。

明确:a.最后确定是否相等,有返回值,即boolean类型

    b.有未知参数,两个int型整数。

黑马程序员_复习_Day02 - 九五二七 - 今天

 定义函数时,只要完成相对应的功能即可,不要多加功能,如比较大小,就不要定义打印结果功能,因为打印不打印结果是调用者的事,只要把比较结果return给调用者即可。

主函数:

    a.保证该类的独立运行。

    b.因为它是程序的入口。

    c.因为它在被jvm调用。


---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- --------
函数的重载
1.定义:
黑马程序员_复习_Day02 - 九五二七 - 今天
在一类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同
    即可称之为该函数重载了。
     如何区分重载:当函数同名只看参数列表。和返回值类型没关系。
2.作用:

    当定义功能相同,但参与运算的未知内容不同。

    那么,就定义一个函数名表示该功能,方便阅读,通过参数列表不同来区分多个同名函数。

   黑马程序员_复习_Day02 - 九五二七 - 今天
3.注意:
黑马程序员_复习_Day02 - 九五二七 - 今天
a与b不是重载,而且二者因为返回值类型不同,不可同时出现在函数中。
虚拟机JVM调用时,不是是否应该有返回值,出现错误。

---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ----------
数组
1.定义:
用于存储同一类型数据的一个容器。
    可以对该容器中的数据进行编号,从 0 开始。
    数组用于封装数据,就是一个具体的实体。
2.格式:
    int[] a = new int[3];       
   int[] a = new int[] {2,4,5}; 注意" []"中不要表明长度,易出错
   int[] a =  {2,4,5};
    等号右边:要不就直接大括号,要不就要"new+类型"               a的类型为数组类型
3.内存分配及特点:
Java分了5片内存 1寄存器。2:本地方法区。3:方法区。4:栈。5:堆
    每片内存处理数据的方式不同,就好比一间房子用墙分为卧室,客厅,卫生间等。
     黑马程序员_复习_Day02 - 九五二七 - 今天
       只要是new的,内存就会开辟新的空间
3.常见问题:
    ArrayIndexOutOfBoundsException:越界
    NullPointerException:空指针
   编译时只检查语法错误。所以" 数组越界 "异常,不会检查出错误, 而运行时,会提示"数组越界"
4.常见操作:
黑马程序员_复习_Day02 - 九五二七 - 今天
  
         黑马程序员_复习_Day02 - 九五二七 - 今天
    需求:打印数组中的元素,元素间用“,”隔开 ;
    明确:1.打印出去,故没有返回值;
        2.要打印的数组不知道,有形参。
               public static void printArray(int[] arr)
                 黑马程序员_复习_Day02 - 九五二七 - 今天
     求最值max mix
           黑马程序员_复习_Day02 - 九五二七 - 今天
      选择排序sort
         黑马程序员_复习_Day02 - 九五二七 - 今天
       冒泡bubleSort
           黑马程序员_复习_Day02 - 九五二七 - 今天
     排序中最快的方式叫希尔排序。
     以上代码排序不是很优化,数组是new出来的,在堆中反复换位置耗资源。
     一般可以改写代码,让在栈内存中记录位置。
     但这也麻烦,java中自带util的工具包中有 Arrays.sort();可以直接用。
位置置换功能:
    发现无论什么排序,都需要对满足条件的元素进行位置置换。
    所以可以把这部分相同的代码提取出来,单独封装成一个函数。
          黑马程序员_复习_Day02 - 九五二七 - 今天
注意:因为调换的是y与y+1,代码为swap(arr,y,y+1);而不是习惯写成swap(arr,x,y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值