您的位置:首页 > 编程语言 > Java开发

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类型)

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跳出循环。
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 函数