JAVASE(4):方法、数组

java之function

概括
方法是一种在运行程序的过程中,减少程序的冗余度而产生的一种方法。例如,在做一个项目时,会使用多次相同的功能,例如在植物大战僵尸中的,豌豆射手的间歇性射击,发射的过程就可以抽取为一种方法。这样可以较大的减少代码的复写,使代码简洁。
格式
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 …){
方法体;
return 返回值;
}
(1): 修饰符 比较多,后面会详细介绍。目前使用 public static
(2): 返回值类型 用于限定返回值的数据类型
(3): 方法名 就是一个名称,它的存在是为了方便我们调用方法
(4): 参数类型 限定调用方法时传入参数的数据类型
(5): 参数名 是一个变量,接收调用方法时传入的参数(这个参数其实有一个专业的名词,被称之为形式参数,它的作用是用来接收实际参数的.)
(6): 方法体 完成功能的代码
(7): return 结束方法以及返回方法指定类型的值
(8): 返回值 就是功能的结果,由return带回,带回给调用者
实例:

//在键盘上输入两个数字,用方法将两个数字的运算封装起来并进行方法的调用
import java.util.Scanner;
public class Demo {
    public static void main(String[] args) {
        System.out.println("请输入第一个数");
        Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();
        System.out.println("请输入第二个数");
        Scanner sc2 = new Scanner(System.in);
        int j = sc2.nextInt();
        int sum=function(i,j);//调用了名为function的方法
        System.out.println("这两个数之和是   "+sum);
    }
    private static int function(int a,int b) {
        //定义了一个名为function的方法来接受参数并执行两个数相加的方法
        int sum =0;
        sum=a+b;
        return sum;//因为是又返回值类型的,因此将两数之和返回去
    }
}

在创建方法时的注意事项
1.方法不调用不执行
2.方法与方法之间不可相互嵌套
3.形参之间用逗号隔开
4.有明确返回值时,必须把一个值return回去
练习

//获取两个数中的较大值
import java.util.Scanner;
public class Demo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数");
        int i = sc.nextInt();
        Scanner sc2 = new Scanner(System.in);
        System.out.println("请输入第二个数");
        int j = sc2.nextInt();
        int max=function(i,j);
        System.out.println("这两个数中最大的数是    " + max);
    }
    private static int function(int a,int b) {
        return a>b?a:b;
    }
}

//比较两个数是否相等

    import java.util.Scanner;
    public class Demo2 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入第一个数");
            int i = sc.nextInt();
            Scanner sc2 = new Scanner(System.in);
            System.out.println("请输入第二个数");
            int j = sc2.nextInt();
            String xt=function(i,j);
            System.out.println("这两个数" + xt+"相同的");
        }
        private static String function(int a,int b) {
            return a==b?"是":"不是";
        }
    }

//根据键盘录入的数据输出对应的乘法表
import java.util.Scanner;
public class Demo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入乘法表的阶数");
        int i = sc.nextInt();
        function(i);
    }
    private static void function(int a) {
        for (int i = 1; i <=a; i++) {
            for (int j = 1; j <=i ; j++) {
                System.out.print(j+"*"+i+"="+(j*i)+"\t");
            }
            System.out.println();
        }
    }
}

方法的重载
在同一个类中可以定义多个同名方法,但要求每个同名方法之间,参数的个数,返回值的类型要求不同,例如

public static void function(int a) { }
public void function(int b,int c){ }
public static int function(double d){return 0;}

java之数组

1.概括
数组是存储同一种数据类型多个元素的集合,可以看作是一个容器。可以存储基本数据类型,也可以存储引用数据类型。换句话说,例如要定义100个变量并赋值,普通定义变量的方法太麻烦了,用数组轻松搞定。int [] arr=new arr[100]
2.格式

格式1: 数据类型[] 数组名;
格式2: 数据类型   数组名[];

3.数组的初始化
在Java中,数组必须初始化才能赋值,是因为在给数组进行初始化的过程中,会为数组开辟一个内存空间,并且对每个数组的元素进行赋值。数组的使用涉及栈内存、堆内存方法区之间的互相调用。
4.数组的长度属性:length,数组中最后一个元素的索引:length(数组长度)-1。
5.数组的异常:数组角标越界异常(数组一旦定义好,长度就固定了),空指针异常(数组名 = null,人为置空)。
案例1 数组的初始化

public class ArrayDemo{
public static void main(String[] args) {
    int[] arr1 = new int[3];//初始化一个能存储三个元素的数组
    arr1[0]=10;//对索引值为0的元素赋值10
    arr1[2]=200;
    int[] arr2 = new int[3];//每一次使用new关键字时都会在堆内存开辟一个虚拟物理空间,可以将变量和数组放进去
    arr2[0]=11;
    arr2[1]=19;
    int[] arr3=arr1;
    arr3[0]=108;
    arr3[1]=106;
    arr1[1]=177;
    System.out.println(arr1[0]); // 108
    System.out.println(arr1[1]); // 177
    System.out.println(arr1[2]); // 200
    System.out.println(arr2[0]); // 11
    System.out.println(arr2[1]); // 19
    System.out.println(arr2[2]); // 0
    System.out.println(arr3[0]); // 108
    System.out.println(arr3[1]); // 177
    System.out.println(arr3[2]); // 200
}
}

案例2 数组的遍历:利用for循环

   public class ArrayDemo {
            public static void main(String[] args) {
                int[] arr={10,20,50,40,102};
                //数组的遍历
                //for(int i=0;i<arr.length;i++){
                //    System.out.println(arr[i]);
                //}
                for (int i = 0; i < arr.length; i++) {
                    System.out.println(arr[i]);
                }
                System.out.println("---------------------------");
                //反向遍历
                for(int i=arr.length-1;i>=0;i--){
                    System.out.println(arr[i]);
                }
            }
        }

案例3 获取数组中的最大值或最小值

 public class ArrayDemo{
         public static void main(String[] args) {
             //获取数组中的最大值或最小值
             int[] arr = {10, 20, 50, 40, 102};
            int max = getMax(arr);
             System.out.println("最大值是" + max);
             int[] arr2 = {10, 20, 50, 40, 102,1000,1};
             int max1 = getMax(arr2);
             System.out.println("最大值是" + max1);
         }
         public static int getMax(int[] arr){
             //定义一个参照值
             int max = arr[0];
             for (int i = 1; i < arr.length; i++) {
                 if (arr[i] > max) {
                     max = arr[i];
                 }
            }
           return max;
         }
     }

案例4 调转数组中的元素(首尾元素交换,遍历一半)

 public class ArrayDemo{
     public static void main(String[] args) {
         //A:
         //案例演示:
         //数组元素反转(就是把元素对调)
         int[] arr = {10, 20, 30, 40, 50}; //50 40 30 20 10
         for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
             int t = arr[i];
             arr[i] = arr[j];
             arr[j] = t;
         }
         //reverseArray(arr);
         showArray(arr);
     }
     //数组元素反转
     private static void reverseArray(int[] arr) {
         //分析:首尾元素值交换,遍历一半
         for (int i = 0; i < arr.length / 2; i++) {
             //采用中间变量进行值交换
             int t = arr[i];
             arr[i] = arr[arr.length - 1 - i];
             arr[arr.length - 1 - i] = t;
         }
     }
     private static void showArray(int[] arr) {
         for (int i = 0; i < arr.length; i++) {
             System.out.print(arr[i] + ",");
         }
     }
 }

案例5 数组元素查找索引值

public class ArrayDemo9 {
    public static void main(String[] args) {
        //ctrl+alt+O 优化导包,没有的包导进来,没有用到的包删掉
        //根据元素查索引
        String[] arr = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"};
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个星期");
        String str = scanner.nextLine();//获取用户输入的字符串
        int index = getIndex(str, arr);
        System.out.println("该元素的索引是" + index)
    }
    private static int getIndex(String str, String[] arr) {
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            if (str.equals(arr[i])) {
                return i;
            }
        }
        return -1; // 一般用 -1 代表没找到
    }
}

案例6 输入索引,寻找数组元素

 public class ArrayDemo8 {
         public static void main(String[] args) {
             //A:
             //案例演示:
             //数组查表法(根据键盘录入索引, 查找对应星期)
             //根据索引查元素
             //获取跟打印输出是两个概念
             String[] arr = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"};
             Scanner scanner = new Scanner(System.in);
             System.out.println("请输入一个整数 1----7");
             int index = scanner.nextInt();
             String str = getElementByArray(index, arr);
             System.out.println(str);
         }
         private static String getElementByArray(int index, String[] arr) {
             if (index >= 1 && index <= 7) {
                 return arr[index - 1];
             } else {
                 return "查无此元素";
             }
         }
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值