/* 方法概述和格式说明: 方法就是完成某个功能的代码 函数在java中被称为方法 */ /* 方法的注意事项: B:方法与方法是平级关系,不能嵌套定义 C:方法定义的时候参数之间用逗号隔开 D:方法调用的时候不用在传递数据类型 */ /* 需求:我要求数的和 咱们的需求不断的发生改变,咱们就对应的提供了多个求和的方法。 可是呢,他们的名字是不同的。 而咱们又要求方法命名作到:见名知意。 可是,很明显,如今没有作到。 那么,肿么办呢? 针对这种状况:方法的功能相同,参数列表不一样的状况,为了见名知意,Java容许它们起同样的名字。 其实,这种状况有一个专业名词:方法重载。 方法重载: 在同一个类中,方法名相同,参数列表不一样。与返回值类型无关。 参数列表不一样: A:参数个数不一样 B:参数类型不一样 方法重载特色 与返回值类型无关,只看方法名和参数列表 在调用时,虚拟机经过参数列表的不一样来区分同名方法 */ class SwitchTest2 { public static void main(String[] args){ System.out.println(sum(10,20)); System.out.println(sum(10,20,30)); System.out.println(sum(10.6f,20)); } public static int sum(int x,int y){ return x+y; } public static int sum(int x,int y,int z){ return x+y+z; } public static float sum(float x,float y){ return x+y; } } 如何对数组进行初始化呢? A:何谓初始化呢? 就是为数组开辟内存空间,并为每一个数组元素赋予值 B:有几种方式呢? a:动态初始化 只指定长度,由系统给出初始化值 b:静态初始化 给出初始化值,由系统决定长度 int[] arr = new int[3]; /* 左边: int:说明数组中的元素的数据类型是int类型 []:说明这是一个数组 arr:是数组的名称 右边: new:为数组分配内存空间。 int:说明数组中的元素的数据类型是int类型 []:说明这是一个数组 3:数组长度,其实也就是数组中元素的个数 */ System.out.println(arr); //[I@175078b 地址值。 //我要地址值没有意义啊,我就要数据值,怎么办呢? //不用担忧,java为你考虑到了。 //其实数组中的每一个元素都是有编号的,而且是从0开始。最大编号是数组的长度-1。 //用数组名和编号的配合就能够获取数组中的指定编号的元素。这个编号的专业叫法:索引 //经过数组名访问数据的格式是:数组名[索引]; System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]);
/* 数组的静态初始化: 格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…}; 简化格式: 数据类型[] 数组名 = {元素1,元素2,…}; 举例: int[] arr = new int[]{1,2,3}; 简化后: int[] arr = {1,2,3}; 注意事项: 不要同时动态和静态进行。 以下格式: int[] arr = new int[3]{1,2,3}; //错误 */ /* 数组操做的两个常见小问题: ArrayIndexOutOfBoundsException:数组索引越界异常 缘由:你访问了不存在的索引。 NullPointerException:空指针异常 缘由:数组已经不在指向堆内存了。而你还用数组名去访问元素。 做用:请本身把全部的场景Exception结尾的问题总结一下。之后遇到就记录下来。 现象,缘由,解决方案。 */ class ArrayDemo6 { public static void main(String[] args) { //定义数组 int[] arr = {1,2,3}; //System.out.println(arr[3]); //ArrayIndexOutOfBoundsException //引用类型的常量:空常量 null arr = null; System.out.println(arr[0]); //NullPointerException } }