方法总结和数组初识
1.方法总结
1.1 方法的三要素
【返回值类型】当前方法运行之后对外的数据产出
【方法名】明确告知用户这里运行的方法是哪一个,执行的效果会怎么样小驼峰命名法,见名知意,动宾结构
【形式参数列表】方法运行所需的外来数据,方法运行的必要条件
1.1.1 方法名
命名规范:
- 只能用英文字母(A ~ Z,a ~ z),数字(0 ~ 9),下划线(_)
- 见名知意,动宾结构。好的方法从方法名开始。
- 小驼峰命名法。如:getXXX、setXXX、removeXXX、addXXX、deleteXXX、updateXXX、attributeXXX
1.1.2 返回值类型
- 没有什么必要和不必要,需求分析过程!!!
- 返回值的数据类型
- 返回值的数据含义
- 返回值每一次有且只能返回一个数据
1.1.3 形式参数列表
形式参数实际上就是在对于方法分析过程中,了解方法运行所需要的必要参数,并且在参数使用必要性上做论证。
1.2 方法的完成过程
-
需求分析
方法名,形式参数列表,返回值类型 -
考虑方法的执行流程
可以采用注释辅助完成方法的执行流程
-
实现代码
按照注释完成代码。
过程中:【不要头铁】【不要自大】【认清自我】【知错就改】
-
验证
(1)代码运行验证
(2)正确参数情况,运行结果怎么样;
(3)错误参数情况,代码反馈什么;
(4)代码的稳定性,健壮性,安全性;
(5)方法中需要使用参数合法性判断。
2.数组【重点】
2.1 生活中的数组
-
超市
商品货物的存放,分门别类。起到了便于管理,便于查找的作用。 ——归纳总结的理念
-
图书馆
(1)社科类、文学类、管理类、小说类、历史类、语言类
(2)相同的书籍会存放于一个书架上同一个位置
(3)每一本书都有一个唯一的编号,如同样的称呼:W-101
(4)同一本书有10本,每一本都会有一个唯一的索引
如:W - 101 - 01 ~ W - 101 - 10
综上两个案例,我们可以概括其特点:
(1)存储位置一致,并且连续
(2)有统一的称呼时,方便管理
(3)存在唯一索引,具有一定的唯一性
2.2 开发中的实际情况
开发中一定存在对于大量相同数据处理的过程,如果按照单一变量的定义方式,会导致:①代码冗余;②代码维护性极差;③代码可操作性极差;④代码阅读性极差。
这里可以模仿生活中的案例,图书馆,超市,把这些统一数据类型的数据,存放在一起,方便管理和使用。于是就需要引入数组使用的场景和概念!
2.3 Java中创建数组的方式
1.【案例】
int[] array = new int[10];
2.【说明】
(1)赋值号左侧:
int:告知编译器,这里创建的是一个int类型数组,有且只能保存int类型数据。保证数据类型一致化。
[ ]:告知编译器,当前定义的数据类型是一个数组
array:这里是一个数组名,操作数组的核心数据!就是一个变量名
数组名 array是一个引用数据类型
(2)赋值号右侧:
new:new 关键字需要在计算机中申请连续内存空间,这块区域在内存的【堆区】。这里就好比,生活中顾客找仓库管理员申请货架,管理员一定是给他一个整个连续区域让其使用。
int:前后呼应,告知编译器,这里能够存储的数据类型是int类型,要求数据类型一致化
[10]:告知编译器,当前数组的**容量 (Capacity)**是多少,这里是10,也就是说这个数组中只能保存10个int类型数
【补充】引用数据类型
引用在生活中中很常见,文献中引用,文言文注解引用,广告角标上标引用,这些都是为了引入其他的内容、其他的文献或者其他的操作。
(1)引用存在的一定的指向性
如:取快递
快递小哥如何知道你的地址在哪里???
根据快递单上的地址、联系方式和姓名来找到你的位置
快递单这里也有一定的【指向性】
快递单中存在一个非常重要的数据【地址】!!!
(2)开发中的引用数据类型,实际上是一个指向其他内存空间的一个数据类型,引用数据类型的变量中存储的内容是其他内存空间的首地址。当CPU访问到引用数据类型变量时,会得到其存储的地址,然后直接跳转到对应的内存空间中,执行代码,获取数据,操作内容。
2.4 定义数组和使用
-
定义数组:
int[] array = new int[10];
-
说明
需要操作数组中拿一个元素,这里需要使用数组的【下标】
计算机内数据的开头都是从0开始,数组容量为10的情况
有效下标的范围0 ~ 9【公式:0 ~ 数组容量Capacity - 1】
-
操作格式:
数组名[有效下标]
/* 演示数组的定义和使用 */
class Demo2 {
public static void main(String[] args) {
/* 这里定义一个int类型的数组,数组的容量为10 */
int[] array = new int[10];
/*
给数组中下标为0的元素赋值
格式: 数组名[有效下标]
*/
array[0] = 10;
/*
给数组中下标为5的元素赋值
*/
array[5] = 20;
/*
给数组下标为10的元素赋值30
10 已经超出了有效下标范围 0 ~ 9
array[10] = 30;
*/
/*
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at Demo2.main(Demo2.java:22)
ArrayIndexOutOfBoundsException 数组下标越界异常
*/
/*
给数组中下标为-1的元素赋值为20
-1 已经超出了有效下标范围 0 ~ 9
*/
// array[-1] = 20;
/*
java.lang.ArrayIndexOutOfBoundsException: -1
*/
/*
取出数组中下标为0和下标为5的元素内容
*/
System.out.println("array[0] : " + array[0]);
System.out.println("array[5] : " + array[5]);
// System.out.println("array[4] : " + array[4]);
}
}
2.5 数组内存分析图【难点】
2.6 数组和循环不得不说的秘密
(1)数组的下标是一个等差数列
(2)数组范围:0 ~ 数组容量 - 1
从以上数组的特点可以肯定,数组和循环一定存在密切的关系!事实上,与数组关系极为密切的是for循环。
class Demo3 {
public static void main(String[] args) {
/* 定义一个int类型数组 容量为10 */
int[] arr = new int[10];
/*
数组名.length
获取当前数组的【容量 Capacity】,获取数组的【属性】
*/
for (int i = 0; i < arr.length; i++) {
// 给数组中每一个元素赋值操作
arr[i] = i + 1;
}
// 利用循环展示数据
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}