黑马程序员──函数、数组

来源:互联网 发布:java ee的jdk 编辑:程序博客网 时间:2024/06/05 23:01

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------



函数


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

函数的格式:

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)
{
  执行语句;
  return 返回值;
}

返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。

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

对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句

如果在最后一行可以省略不写。


定义函数:两个明确

明确要定义的功能最后的结果是什么?-->返回值类型
明确在定义该功能的过程中,是否需要未知内容参与运算-->明确参数


函数的重载(overload)


重载的概念

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

重载的特点:

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

重载的好处:

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

重载示例:

//返回两个整数的和
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;}


数组

概念

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

好处:

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

格式:

元素类型[] 数组名= new 元素类型[元素个数或数组长度];
示例:int[] arr = new int[5];

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


内存结构

栈内存

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

堆内存

数组和对象,通过new建立的实例都存放在堆内存中。
每一个实体都有内存地址值。
实体中的变量都有默认初始化值。
实体不在被使用,会在不确定的时间内被垃圾回收器回收。(垃圾回收机制)

数组操作常见问题

数组脚标越界异常(ArrayIndexOutOfBoundsException)

空指针异常(NullPointerException)


数组排序方式:

选择排序:

public static int[] xuanZhe(int[] arr)//选择排序,由0角标开始比较,一次循环,比较出一次所有值最小值。{for(int x=0;x<arr.length-1;x++)//因为最后一个角标不需要比较,所以用x<arr.length-1,让最后两个角标的元素比较一次就结束。{for(int y=x+1;y<arr.length;y++){if(arr[x]>arr[y]){int temp;//定义临时变量用于换位。temp=arr[x];arr[x]=arr[y];arr[y]=temp;}}}return arr;}

冒泡排序:

public static int[] maoPao(int[] arr)//相邻元素比较,把最大值确定。{for(int x=0;x<arr.length-1;x++){for(int y=0;y<arr.length-1-x;y++)//-1 防止角标越界{if(arr[y]>arr[y+1])//重点在这里  相邻比较用arr[y]>arr[y+1]!!!记住就好!!!{int temp;temp=arr[y];arr[y]=arr[y+1];arr[y+1]=temp;}}}return arr;}

其他排序方式   插入排序、希尔排序、Arrays.sort( )。

进制转换:

十进制-->二进制:

public static void toBin1(int num)//打印出来时相反的  可以存入SB中 再反转。{StringBuilder sb = new StringBuilder();while(num>0){sb.append(num % 2);num = num/2;}sb.reverse();System.out.println(sb.toString());}


第二种方式  查表法:

public static void toBin(int num)//二进制转换{char[] chs = new char[]{'0','1'};//查表char[] ch = new char[32];//定义存储容器int pos = ch.length;//定义指针while(num!=0){int temp = num&1;//取最低1位ch[--pos] = chs[temp];//存入容器相应位置num = num>>>1;//右移一位}for(int x=pos;x<ch.length;x++){System.out.print(ch[x]);}System.out.println();

十进制转八进制 、十六进制原理类似。

数组中的数组

二维数组[][]

格式:int[][] arr = new int[3][2];

定义了名称为arr的二维数组
二维数组中有3个一维数组
每一个一维数组中有2个元素
一维数组的名称分别为arr[0], arr[1], arr[2]。

格式二

int[][] arr = new int[3][];

格式三

int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};

特殊写法: int[] x,y[]; x是一维数组,y是二维数组。


以上内容为本人笔记,仅供参考。




























































0 0