方法调用和数组概念以及for each

本文介绍了程序设计中的基本概念,包括方法(函数)的定义与调用、数组的使用及异常处理等内容,并详细解释了foreach循环的特点及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、方法:函数,解决一些问题的过程,在程序里面实现某些功能的代码集合;
方法定义:
修饰符 返回值类型 方法名(形参列表){
方法体;
return 返回值;

二、方法的调用:
引用对象.方法名(实参列表);
重载:在同一个类中,方法名一样,参数类型、个数、顺序至少一个不同。
三、数组的定义:
一组相同类型数据的有序集合;
数组的两种声明方式:
type [] array_name;
type array_name [];
ArrayIndexOutOfBoundsException:数组下标越界异常
NullPointerException:空指针异常(找不到对象)
数组下标从0开始,下标最大值等于数组的长度-1
数组的长度:数组.length         (属性)
数组找最大和最小的方法:
1.认为数组的第一个就是最大或者最小
2.依次遍历数组进行和第一个值进行比较
3.大于最大值就是最大,小于最小值就是最小
4.所有比较结束后,最大和最小值就拿到了

四、for each循环
1.JDK1.5后增加的功能
2.最大的特点:简单,强大
3.缺点:不能进行与下标相关的操作,不能进行修改删除操作
4.作用:一般用来遍历(查询并显示)数组和集合
5.增强的for循环也没有增强,相反功能弱化。
for each的出现替代了麻烦又不简单的迭代器;
### 空数组数组为 `null` 的区别及含义 在 Java 编程中,理解空数组(长度为 0 的数组数组为 `null` 是非常重要的概念。以下是两者的详细对比及其含义: #### 1. **定义上的差异** - **空数组**是指已经创建的一个数组对象,但其长度为 0。也就是说,它是一个有效的数组实例,只是没有任何元素存储其中[^1]。 - **数组为 `null`** 表示该变量并没有指向任何实际的数组对象。换句话说,这是一个未初始化的状态,意味着还没有为其分配内存空间[^1]。 ```java int[] emptyArray = new int[0]; // 这是一个空数组 int[] nullArray = null; // 这是一个还未被初始化的数组引用 ``` --- #### 2. **行为表现的不同** ##### 访问长度 - 如果尝试获取一个空数组的长度,则会得到值 `0` 而不会抛出异常[^1]。 - 尝试访问一个 `null` 数组的长度将会触发 `NullPointerException`,因为此时不存在真实的数组对象可供操作[^2]。 ```java System.out.println(emptyArray.length); // 输出:0 // System.out.println(nullArray.length); // 抛出 NullPointerException ``` ##### 遍历过程 - 使用增强型 `for-each` 循环遍历空数组时,循环体根本不会被执行,因为它不含任何元素[^3]。 - 对于 `null` 数组而言,试图对其进行迭代同样会产生 `NullPointerException` 错误[^2]。 ```java for (int num : emptyArray) { System.out.println(num); } // 此段代码无输出 // for (int num : nullArray) { ... } // 导致 NullPointerException ``` --- #### 3. **应用场景的区别** - **推荐使用空数组代替 `null` 返回值**:根据某些编码准则建议,在方法需返回某种集合或数组却无可提供内容的情况下,应当返回一个空数组而非 `null` 值。这样做的好处是可以减少调用方不必要的判空逻辑,从而降低因疏忽而产生的错误几率。 - **何时允许返回 `null`**:尽管如此,在特定场景下仍可能合理地返回 `null` 来表达特殊状态,例如表明请求失败或者其他无法正常完成的情形。不过在这种情况下务必清楚文档说明以便使用者知晓如何妥善应对[^4]。 --- ### 结论 综上所述,区分空数组数组为 `null` 至关重要。前者代表的是确实存在但不包含任何项目的容器;后者则指示着根本没有建立相应的实体。开发者应依据具体情况选择恰当的方式处理这些状况以确保应用程序健壮性易维护性。 ```java public class ArrayExample { public static void main(String[] args) { int[] emptyArray = new int[0]; int[] nullArray = null; try { System.out.println("Empty Array Length: " + emptyArray.length); System.out.println("Null Array Length: " + nullArray.length); } catch (NullPointerException e) { System.out.println("Caught NullPointerException when accessing null array's length."); } try { for (int value : emptyArray) { System.out.println(value); } for (int value : nullArray) { System.out.println(value); } } catch (NullPointerException e) { System.out.println("Caught NullPointerException during iteration of null array."); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值