黑马程序员——Java基础之函数与数组

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ---------

函数的定义

什么是函数?

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

函数的格式

修饰符  返回值类型  函数名(参数类型 形式参数1,参数类型 形式参数2,...)

{

执行语句;

return 返回值;

}

返回值类型:函数运行后结果结果的数据类型。

参数类型:是形式参数的数据类型

形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数

实际参数:传递给形式参数的具体数值

return:用于结束函数

返回值:该值会返回给调用者。

函数的特点

定义函数可以将功能代码进行封装,便于对该功能进行复用。

函数只有被调用才会被执行

函数的出现提高了代码的复用性

对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在在最后一行可以省略不写。

注意:

函数中只能调用函数,不可以在函数内部定义函数

定义函数时,函数的结果应该返回给调用者,交由调用者处理。

如何定义一个函数呢?

1.  既然函数是一个独立的功能,那么该功能的运算结果先明确

2.  在明确在定义该功能的过程中是否需要未知内容参与运算

例如:


函数的重载

重载的概念

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

重载的特点

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

重载的好处

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

重载示例

//返回两个整数的和

int add(int x, int y){return x+y}

//返回三个整数的和

int add(int x, int y, int z){return x+y+z}

//返回两个小数的和

double add(double x, double y)(return x+y)


练习:下面函数中和原函数重载没,并说出原因

原函数:void show(int a, char b, double c) {}

a.  void show(int x, char y, double z) {}//没有,因为和原函数一样

b.  int show(int a, double c ,char b) {}//重载啦!因为和返回值类型没有关系

c.  void show(int a,double c ,char b) {}//重载啦,因为参数输入顺序不一样

d.  bolean show(int a, char b) {}//重载啦,参数输入不一样

e.  double show(int a, char b, double c) {}//没有,该函数不可能和原函数在一个程序里面


数组

数组的定义

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

数组的好处

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

格式1:   元素类型[] 数组名 = new 元素类型[元素个数或数组长度];     

示例:int[] arr = new int[5];

格式2:   元素类型[] 数组名 = new 元素类型[]{元素1,元素2,元素3,......};

示例:int[] arr = new int[]{1,2,3,4,5}    

int[] arr = {1,2,3,4,5};

内存结构的分配

java程序在运行时,需要在内存中分配空间,为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

栈内存

用于存储局部变量,当数据使用完,所占空间会自动释放

堆内存

数组和对象,通过new建立的实例都存放在堆内存中

每一个实体都有内存地址值

实体中的变量都有默认的初始化值

实体不再被使用,会在不确定的时间内被垃圾回收器回收

方法区,本地方法区,寄存器

操作数组时可能 会发生的问题

ArrayIndexOutOfBoundsException-----数组操作时,访问到了数组中不存在的角标

NullPointerException------空指针异常;(int[] arr= null;)时,即引用没有任何指向值为null的情况,该引用还在用于操作实体

数组的练习

获取指定数组的最值


数组的排序

对指定数组进行选择冒泡排序操作


对数组元素进行选择排序操作



数组元素的查找

普通查找


数组元素折半查找(数组元素必须是有序的)


二维数组

二维数组的格式1:int[][] arr = new int[3][2];

定义了一个名称为arr的二维数组

二维数组中有3个一维数组

一维数组的名称分别为arr[0], arr[1], arr[2]

给第一个一维数组1角标位赋值78的写法是:arr[0][1] = 78;

二维数组的格式2:int[][] arr = new int[3][];

二维数组中有3个一维数组

每一个一维数组的默认初始化值为null

可以对三个一维数组进行分别初始化

arr[0] = new int [3] ;            arr[1] = new int [1] ;                    arr2] = new int [2];

练习:一定义好两个数组,判断下下面程序的对错

int [] x, y[];

a.  x[0] = y;  正确的                                                                   b.  y[0] = x;错误的

c.  y[0][0] = x; 正确的                                                                d.  x[0][0] = x;错误的

e.  y[0][0] = x[0];   正确的                                                          f.  x=y;错误的

猜你喜欢

转载自blog.csdn.net/Crazysort/article/details/46507619
今日推荐