03章【方法与数组】

方法

方法的定义

  • 方法(又叫函数)就是一段特定功能的代码块。方法提高程序的复用性和可读性。
  • 比如,有了方法,我们可以把要重复使用的一段代码提炼出来,然后在每个需要执行这段代码的地方去调用即可。
  • 在一个打飞机的游戏中,飞机需要发射子弹,那么我们可以把发射子弹的这段代码写成方法,这样就可以避免每次重写相同的代码。

方法的格式

访问权限修饰符 [其他的修饰符 如static] 返回值类型 方法名(参数类型1 形参1,参数类型2 形参2,...){ //形参列表
	//方法体
	return 返回值;
}

方法的形参与实参

参数

  • 实际参数:就是实际参与运算的。
  • 形式参数;就是方法定义上的,用于接收实际参数的。
  • 参数类型:就是参数的数据类型
  • 参数名:就是变量名
  • 方法体语句:就是完成功能的代码。

注意事项

  • 若当前方法中不要使用形参,那么形参列表中可以为空
  • 实参和形参的类型要相互兼容,且:实参的取值范围要小于或者等于形参类型的取值范围。
  • 在调用方法中,如果我们定义的方法有参数,就必须在调用方法的同时传入这个值,即给当前方法中的参数赋值,而这个传入的值我们称为实际参数,也就是实参
    • 实参:传入的参数值
    • 形参:接收实参传过来的值。
    • 注意:实参名与形参名可以相同,也可以不同。

小结:形参就是一个变量,实参就是一个值,传参就是把一个值给一个形参赋值

方法的返回值

  • return:结束方法的。
  • 返回值:就是功能的结果,由return带给调用者。

注意:

  • 若当前方法没有返回值类型,即返回值类型是void,那么当前方法中可以不写return
  • return即表示结束一个方法,也可以将返回值返回给调用当前方法的调用者
  • return返回值时一次只能返回一个值,不可以返回多个值
  • 一个方法中可以有多个return,但被执行的只能有一个,所以需要判断

方法的重载

  • 方法重载:overloading method
  • 在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义;
  • 返回值不能作为重载的条件。

如:
public void method(int a){…}
public void method(char c){…}


数组

Java 数组的定义

  • 数组:一组能够存储相同数据类型值的变量的集合。
  • 当我们有一组相同类型的数据需要存储,如果此时使用单个变量来存储,我们将要定义若干个变量名,这样将会非常繁琐,并不利于维护。

数组的赋值方式

  • 使用默认的初始值来初始化数组中的每一个元素
    • 语法:数组元素类型 [] 数组名 = new 数组元素类型[数组中元素的个数(数组的长度)];
    • 如:int [] scores = new int[3];
  • 先声明,然后再赋予默认的初始值。
    • 语法:数组元素类型 [] 数组名; 数组名= new 数组元素类型[数组中元素的个数(数组的长度)];
    • 如:int [] scores; scores = new int[3];
  • 先声明,然后再使用指定的值进行初始化。
    • 年语法:数组元素类型 [] 数组名 = new 数组元素类型[]{元素1,元素2,…};
    • 如:int [] scores = new int[]{56,78,98};
  • 将第三种写法可以简化为(使用数组常量值给数组进行赋值)
    • 语法:数组元素类型 [] 数组名 = {元素1,元素2,…};
    • 如:int [] scores = {56,78,98};

数组的遍历

  • 求数组的长度:x.length
  • 通过下标来访问数组中的元素。
  • 下标:从0开始,到数组长度-1
    • 如:int[] scores = {89,90};
  • 访问最后一个元素值:int lastElement = scores[scores.length-1];
  • 遍历:依次取出数组中的每一个元素。
  • 遍历方式一:普通的for循环
    语法:
for(int i = 0; i< 数组的长度;i++){	//i:循环变量,同样:也是数组的下标(取值范围[0,数组长度))
	数组中元素的类型 变量 = 数组名[i];
}

增强for循环与可变参数

1.5以后Java新增foreach循环和可变参数。

  • 遍历方式二:使用增强for循环【foreach循环】
    语法:
for(数组中元素的类型 变量:数组名){
	数组中元素的类型 临时变量 = 变量;
}

结合方法的定义,可以用可变参数来代替数组作为参数。

public static void print(int ... 变量名){
	//可变参数在使用时作为数组使用。
}

数组要注意的问题

  • 使用数组要注意的问题:
    • 空指针异常(NullPointerException)
    • 数组越界异常(ArrayIndexOutOfBoundsException )
    • 数组内存结构分析:数组是引用类型,会存放在堆内存中

最大最小值算法

冒泡排序算法

选择排序算法

直接插入排序算法

二分查找算法


Arrays类

Arrays工具类:用来操作数组(比如排序和搜索)的各种方法
常用方法:

  • 使用二分法查找
Arrays.binarySearch(int[] array, int value);
  • 数组内容转成字符串的形式输出
Arrays.toString(int[] array);
  • 数组排序
Arrays.sort(int[] array);
  • 复制指定的数组
Arrays.copyOf(int[] array, int length);
Arrays.copyOf(int[] array, int from, int to);
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
  • 判断两个数组是否相等
Arrays.equels();
  • 使用指定元素填充数组
Arrays.fill();
  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值