学习java day6笔记(补10.29)

发布于:2022-11-02 ⋅ 阅读:(362) ⋅ 点赞:(0)

1.方法(method)是程序中最小的执行单元,当重复的代码和具有独立功能的代码可以抽取到方法中,可以提高代码的复用性,可维护性

方法定义:把一些代码打包在一起

方法调用:方法定义后并不是直接运行的,需要手动调用才能执行

2.最简单的方法定义和调用

方法定义格式

public static void 方法名(){
    方法体;
}

方法调用格式:方法名();

注:方法必须先定义后调用,否则程序将报错

3.带参数的方法定义和调用

单个参数格式

public static void 方法名(参数){...}

单个参数调用:方法名(参数);

多个参数格式

public static void 方法名(参数1,参数2,...){...}

多个参数调用:方法名(参数1,参数2,...);

注:方法调用时,参数的数量与类型必须与方法定义中小括号里面的变量一一对应,否则程序将报错

形参:形式参数,指方法定义中的参数

实参:实际参数,指方法调用中的参数

4.带返回值方法的定义和调用:方法的返回值就是方法运行的最终结果

带返回值方法定义格式

public static 返回值类型 方法名(参数){
    方法体;
    return 返回值;
}

带返回值方法的调用格式:直接调用:方法名(实参);

                                           赋值调用:整数类型 变量名=方法名(实参);

                                           输出调用:System.out.println(方法名(实参));

注:在调用处要根据方法的结果,去编写另一段代码时会用到返回值

       方法不调用就不执行

       方法与方法之间是平级关系,不能互相嵌套定义

       方法的编写顺序和执行顺序无关

       方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写,如果要编写return,后面不能跟具体的数据

       return语句下面,不能编写代码,因为永远执行不到,属于无效代码

5.return关键字

方法没有返回值:可以省略不写,如果书写,表示结束方法

方法有返回值:必须要写,表示结束方法和返回结果

6.方法的重载:同一个类中,方法名相同,参数不同(个数不同/类型不同/顺序不同)的方法与返回值无关

注:顺序不同可以构成重载,但是不建议

7.return和break关键字的区别

return:跟循环没什么关系,跟方法有关,表示结束方法;返回结果

break:跟方法无关,结束循环或者switch的

8.方法调用的基本内存原理

方法被调用后就会进栈执行

9.基本数据类型和引用数据类型

基本数据类型:变量中存储的是真实的数据(数据值是存储在自己空间中的)

特点:赋值给其他变量,也是赋的真实的值

引用数据类型:变量中存储的是地址值,引用指的是使用了其他空间的数据(数据值是存储在其他空间中,自己空间中存储的是地址值)

特点:赋值给其他变量,赋的是地址值

10.方法传递基本数据类型的内存原理

传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值

11.方法传递引用数据类型的内存原理

传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值

数组遍历,按规定输出

import java.util.Random;
public class Test8 {
    public static void main(String[] args) {
        Random r=new Random();
        int arr[]=new int[10];
        for (int i = 0; i < arr.length; i++) {
            int number=r.nextInt(100)+1;
            arr[i]=number;
        }
        printArr(arr);
    }
    public static void printArr(int arr[]){
        System.out.print('[');
        for (int i = 0; i < arr.length; i++) {
            if (i== arr.length-1){
                System.out.print(arr[i]);
            }else{
                System.out.print(arr[i]+",");
            }
        }
        System.out.println(']');
    }
}

求随机生成的数组中的最大值

import java.util.Random;
public class Test9 {
    public static void main(String[] args) {
        Random r=new Random();
        double []arr=new double[10];
        for (int i = 0; i < arr.length; i++) {
            double number= r.nextDouble(500)+1;
            arr[i]=number;
            System.out.println(arr[i]);
        }
        printArr(arr);
        }
    public static double printArr(double []arr){
        double max=arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]>max){
                max=arr[i];
            }
        }
        System.out.println("最大值是:"+max);
        return max;
    }
    }

判断输入的数是否在随机生成的数组中

import java.util.Random;
import java.util.Scanner;
public class Test10 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个数");
        int num1= sc.nextInt();
        Random r=new Random();
        int []arr=new int[10];
        for (int i = 0; i < arr.length; i++) {
            int number=r.nextInt(51);
            arr[i]=number;
            //System.out.print(arr[i]+" ");
        }
        contains(arr,num1);
    }
    public static boolean contains(int []arr,int number){
        for (int i = 0; i < arr.length; i++) {
            if(number==arr[i]){
                System.out.println("数组中存在这个数");
                return true;
            }
        }
        System.out.println("数组中不存在这个数");
        return false;
    }
}

随机生成一个数组,将这段数组从from到to之间生成一个新数组

import java.util.Random;
import java.util.Scanner;
public class Test11 {
    public static void main(String[] args) {
        Random r=new Random();
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入from的值");
        int num1= sc.nextInt();
        System.out.println("请输入to的值");
        int num2= sc.nextInt();
        int []arr=new int[20];
        for (int i = 0; i < arr.length; i++) {
            int number=r.nextInt(101);
            arr[i]=number;
            System.out.println(arr[i]);
        }
        int[] copyArr=copyOfRange(arr,num1,num2);
        for (int i = 0; i < copyArr.length; i++) {
            System.out.print(copyArr[i]+" ");
        }
    }
    public static int[] copyOfRange(int []arr,int from,int to){
        int []newArr=new int[to-from];
        int index=0;
        for (int i = from; i < to; i++) {
            newArr[index]=arr[i];
            index++;
        }
        return newArr;
    }
}

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到