JAVA-3.1-方法及方法重载、数组
2017-04-05 13:29
260 查看
一:java中方法的介绍
1.1 函数:Java就是方法。
方法:
就是完成特定功能的代码块
格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
方法体;
return 返回值;
}
解释:
修饰符:目前就写public static
返回值类型:用于限定返回值的数据类型
方法名:方便我们调用方法
参数类型:
形式参数 就是接收实际参数的变量(定义时候的)
实际参数 就是实际参与运算的变量(调用时候的)
方法体:就是完成功能的代码。
返回值:就是功能的返回结果。
1.2 有明确返回值的方法调用
A:单独调用:没有意义
B:输出调用:不是特别好,因为我们可能需要对结果进行进一步的操作。
C:赋值调用:推荐方案
1.3 书写方法注意的事项:
做到两个明确:
返回值:结果的数据类型
参数:参数的个数,以及类型
1.4 需求:
求两个数据和的功能。(如果数据我没有说类型,默认int类型)
1.5 方法的注意事项(依然用定义的加法的方法进行演示):
A:方法不调用不执行
B:方法与方法是平级关系,不能嵌套定义
C:方法定义的时候参数之间用逗号隔开
D:方法调用的时候不用在传递数据类型
E:如果方法有明确的返回值,一定要有return带回一个值
1.6 需求:写一个功能实现返回两个数的较大值。要求,数据来自于键盘录入。
1.7 练习:写一个功能实现比较两个数据是否相等。要求,数据来自于键盘录入。
二:方法重载
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
方法重载特点:
与返回值类型无关,只看方法名和参数列表
在调用时,虚拟机通过参数列表的不同来区分同名方法
三:数组(容器,用来存储相同类型数据的容器)
3.1 数组:数组是存储同一种数据类型多个元素的集合
注意:数组既可以存储基本数据类型,也可以存储引用数据类型
3.2数组的定义格式
A:数据类型[] 数组名;
int[] arr;
B:数据类型 数组名[];
int arr[];
3.3数组初始化概述:
A:Java中的数组必须先初始化,然后才能使用。
B:所谓初始化就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
3.4如何为数组进行初始化呢?
A:动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
B:静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
3.5动态初始化:
初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 数组名 = new 数据类型[数组长度];
(数组长度其实就是数组中元素的个数)
3.6为了方便我们获取数组中的元素,数组就为每个元素进行了编号,从0开始。这个编号,专业叫法:索引。(角标,下标)
有了索引如何获取元素呢?
格式:数组名[索引]
3.7静态初始化:
初始化时指定每
4000
个数组元素的初始值,由系统决定数组长度。
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
简化格式:
数据类型[] 数组名 = {元素1,元素2,…};
3.8数组操作常见的两个小问题
A:
ArrayIndexOutOfBoundsException:数组索引越界异常
怎么产生的:
访问了不存在的索引。
如何解决:
修改你的访问索引。
B:
NullPointerException:空指针异常
怎么产生的:
引用已经不再指向堆内存
如何解决:
一般来说,只要是引用类型的变量,我们在使用前,都要先判断是否为null。如果不为null,才继续使用。
3.9数组遍历:
依次输出数组中的每一个元素
数组遍历标准格式:
需求:1:定义一个数组,并把数组元素遍历出来
2:定义一个数组,找出数组中的最大值
3:定义一个数组,把数组反向打印
4:定义一个数组,查找元素在数组中第一次出现的位置
1.1 函数:Java就是方法。
方法:
就是完成特定功能的代码块
格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
方法体;
return 返回值;
}
解释:
修饰符:目前就写public static
返回值类型:用于限定返回值的数据类型
方法名:方便我们调用方法
参数类型:
形式参数 就是接收实际参数的变量(定义时候的)
实际参数 就是实际参与运算的变量(调用时候的)
方法体:就是完成功能的代码。
返回值:就是功能的返回结果。
1.2 有明确返回值的方法调用
A:单独调用:没有意义
B:输出调用:不是特别好,因为我们可能需要对结果进行进一步的操作。
C:赋值调用:推荐方案
1.3 书写方法注意的事项:
做到两个明确:
返回值:结果的数据类型
参数:参数的个数,以及类型
1.4 需求:
求两个数据和的功能。(如果数据我没有说类型,默认int类型)
package com.edu_01; public class FunctionDemo2 { public static void main(String[] args) { int d = add(10, 20); System.out.println(d); } public static int add(int a,int b){ int c = a+ b; return c; } }
1.5 方法的注意事项(依然用定义的加法的方法进行演示):
A:方法不调用不执行
B:方法与方法是平级关系,不能嵌套定义
C:方法定义的时候参数之间用逗号隔开
D:方法调用的时候不用在传递数据类型
E:如果方法有明确的返回值,一定要有return带回一个值
1.6 需求:写一个功能实现返回两个数的较大值。要求,数据来自于键盘录入。
package com.edu_01; import java.util.Scanner; public class FunctionDemo4 { public static void main(String[] args) { /** * 调用下面的求最大值的方法,数据来自键盘录入 */ //创建键盘录入对象并导包 Scanner sc = new Scanner(System.in); //获取键盘录入数据 System.out.println("请输入第一个数据"); int a = sc.nextInt(); System.out.println("请输入第二个数据"); int b = sc.nextInt(); //调用求最大值的方法 int max = getMax(a, b); System.out.println(max); } /** * 写一个功能实现返回两个数的较大值。要求,数据来自于键盘录入。 */ /** * 两个明确: * 形式参数:2,int * 返回值:有,int */ public static int getMax(int a,int b){ int c = a>b?a:b; return c; } }
1.7 练习:写一个功能实现比较两个数据是否相等。要求,数据来自于键盘录入。
package com.edu_01; import java.util.Scanner; public class FunctionDemo5 { public static void main(String[] args) { //创建键盘录入对象并导包 Scanner sc = new Scanner(System.in); System.out.println("请输入第一个数据"); int a = sc.nextInt(); System.out.println("请输入第二个数据"); int b = sc.nextInt(); //调用方法进行判断 System.out.println(isEquals(a, b)); } /** * 写一个功能实现比较两个数据是否相等。 * 两个明确: * 参数列表:2,int * 返回值:有,布尔类型 */ public static boolean isEquals(int a,int b){ return a==b; } }
二:方法重载
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
方法重载特点:
与返回值类型无关,只看方法名和参数列表
在调用时,虚拟机通过参数列表的不同来区分同名方法
三:数组(容器,用来存储相同类型数据的容器)
3.1 数组:数组是存储同一种数据类型多个元素的集合
注意:数组既可以存储基本数据类型,也可以存储引用数据类型
3.2数组的定义格式
A:数据类型[] 数组名;
int[] arr;
B:数据类型 数组名[];
int arr[];
3.3数组初始化概述:
A:Java中的数组必须先初始化,然后才能使用。
B:所谓初始化就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
3.4如何为数组进行初始化呢?
A:动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
B:静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
3.5动态初始化:
初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 数组名 = new 数据类型[数组长度];
(数组长度其实就是数组中元素的个数)
3.6为了方便我们获取数组中的元素,数组就为每个元素进行了编号,从0开始。这个编号,专业叫法:索引。(角标,下标)
有了索引如何获取元素呢?
格式:数组名[索引]
3.7静态初始化:
初始化时指定每
4000
个数组元素的初始值,由系统决定数组长度。
格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
简化格式:
数据类型[] 数组名 = {元素1,元素2,…};
3.8数组操作常见的两个小问题
A:
ArrayIndexOutOfBoundsException:数组索引越界异常
怎么产生的:
访问了不存在的索引。
如何解决:
修改你的访问索引。
B:
NullPointerException:空指针异常
怎么产生的:
引用已经不再指向堆内存
如何解决:
一般来说,只要是引用类型的变量,我们在使用前,都要先判断是否为null。如果不为null,才继续使用。
3.9数组遍历:
依次输出数组中的每一个元素
数组遍历标准格式:
for(int x=0; x<数组名.length; x++) { System.out.println(数组名[x]); }
需求:1:定义一个数组,并把数组元素遍历出来
2:定义一个数组,找出数组中的最大值
3:定义一个数组,把数组反向打印
4:定义一个数组,查找元素在数组中第一次出现的位置
package homework; public class ArrDemo { public static void main(String[] args) { //创建一个数组,并静态初始化 int[] arr={1,2,3,45,56,23,66,6,9,6,7,8,9,2,1,4,56}; printArr(arr); System.out.println("---------"); System.out.println(getArrMax(arr)); System.out.println("---------"); lastToFirstPrint(arr); System.out.println("---------"); First(arr,6); } //定义一个方法遍历数组 public static void printArr(int[] Arr){ for(int i=0;i<Arr.length;i++){ System.out.println(Arr[i]); } } //定义一个方法找出数组中的最大值 public static int getArrMax(int[] Arr){ int max=Arr[0]; for(int i=0;i<Arr.length;i++){ max=max>Arr[i]?max:Arr[i]; } return max; } //定义一个方法把数组反向打印 public static void lastToFirstPrint(int[] Arr){ for(int i=Arr.length;i>0;i--){ System.out.println(Arr[i-1]); } } //定义一个方法查找元素在数组中第一次出现的位置 public static void First(int[] Arr,int a){ for(int i=0;i<Arr.length;i++){ if(Arr[i]==a){ System.out.println(i); break; //由于是查找元素在数组中第一次出现的位置,所以利用break跳出循环。 } } } }
相关文章推荐
- 1-2 java基础:方法、方法重载、数组
- 【Java学习笔记】05.数组、方法和方法重载
- Java 错误 创建泛型数组 解决方法
- JAVA 中数组的几种排序方法 标准的!
- C/C++与Java多维数组,遍历与最大值获取方法!
- (java 必备知识之一) java 数组复制 System方法 arrayCopy 深入解析
- Java学习笔记---5.Java数组和方法
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- Flex array数组到java Object[] 的转换方法
- Java数组拷贝方法arraycopy()
- java中数组与List相互转换的方法
- java中把对象转化为byte数组的方法
- JAVA 中数组的几种排序方法
- JAVA中关于数组初始化的常用方法
- JAVA里实现一个数组全排列的方法
- java数组定义方法
- java中把对象转化为byte数组的方法
- [java]关于数组和List之间相互转换的方法
- JAVA对象数组的初始化方法
- 各种数组排序方法总结(Java)