java方法


build project(清除缓存)

数组

数组:是一种用于存储多个相同类型数据的存储模型

image-20220724120434966

数组定义格式

范例1:推荐使用

定义格式:数据类型[] 变量名

int[] aarr;

//含义,定义一个int类型的数组,数组名是arr

范例2:

数据类型 变量名[]

int arr[]

//含义:定义了一个int类型的变量,变量名是arr数组

数组动态初始化

  1. 数组初始化概述:Java中的数组必须先初始化,然后才能使用;初始化就是为数组中元素分配空间,并为每个元素赋值。

  2. 数组初始化方式:动态初始化,静态初始化

  3. 动态初始化:初始化时只指定数组长度,由系统为数组分配初始值

  4. 动态初始化格式:数据类型[] 变量名=new 数据类型[数组长度]

    int arr=new int[3];

    数组(数组也是对象)和对象都存放在堆空间,局部变量存放在栈空间

    栈内存通过内存地址访问堆空间

    静态初始化

    int[] arr=new int[]{}

    int[] arr={1};初始化,arr的长度为1

    数组注意点

    int[] arr={1,2,3,4,5,6};
    int a=arr.length;//
    System.out.println(arr[--a]);
    //System.out.println(arr[--arr.length]);//不能使用--arr.length,因为length的值不能被我们改变
    

方法概述

方法(method)是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码

  1. 方法必须先创建才能使用,该过程称为方法定义
  2. 方法创建后并不是直接可以运行,需要调用后才执行,该过程称为方法调用

执行方法是在栈中进行的

启动后,主方法进行压栈,然后,其他放啊压栈,其他方法执行完出栈,最后主方法出栈

方法的形参和实参

形参:方法中定义的参数

getMax(int a,int b)

实参:方法调用传递的数

getMax(10,20)

方法定义注意事项:

  1. 方法不能嵌套定义:方法是平级关系,不能嵌套定义
  2. void表示无返回值,可以省略return,也可以单独书写return,不加数据

方法的重载

方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法,相互构成重载

1.多个方法在同一个类中

2.多个方法具有相同的方法名

3.多个方法的参数类型不同,类型不同或者数量不同

方法重载的特点

1.重载仅对应方法的定义,与方法的调用无关,调用方法参照标准格式

2.重载仅针对同一个类中的方法名称与参数进行识别,与返回值类型无关,换句话说不能通过返回值类型来判断两个方法是否重载(是否静态也无法判断)

参数传递基本数据类型

/**
 *参数为基本数据类型
 **/
public class CanShuChuanZhi {
    public static void main(String[] args) {
        int num=10;
        System.out.println("调用方法前:"+num);//10
        //传参时将实参的值赋给了形参
        sum(num);
        //num为实参
        System.out.println("调用方法后:"+num);//10
    }
    public static int sum(int num){
        //形参
        num++;
        return num;
    }
}
//考点:形参的改变不会影响实参

参数传递引用类型

/**
 *参数传引用
 * 形参的变换会影响实参
 **/
public class CanShuChuanYingYong {
    public static void main(String[] args) {
        int[] arr={10,20,30};//实参,数组也是引用
        System.out.println("调用前"+arr[0]);//10
        add(arr);
        System.out.println("调用前"+arr[0]);//100
    }
    public static void add(int[] arr){//形参为引用传的是地址
        arr[0]=100;
    }
}

debug使用

F7:下一步(进方法)

F8:下一步(不进方法)

F9:跳到下一个断点

栈帧

image-20220724221831699

条件判断

断点处右键

image-20220724221923941

设置变量

image-20220724221949573

回退断点

image-20220724222500508

非debug、

image-20220724222530222

清除断点

image-20220724222551535

return和break

return:
从当前的方法中退出,返回到该调用的方法的语句处,继续执行;
返回一个值给调用该方法的语句,返回值数据类型必须与方法的声明中返回值的类型一致,可以使用强制类型转换来使数据类型一致;return当方法说明中用viod声明返回值为空时,应使用这种格式,不返回任何值。
break:
只能在循环体内和switch语句体内时使用:

当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体
当break出现在循环体内,但并不在switch语句体内时,则在执行break后,跳出本层循环体

package NeiBuLei;


/**
 *return使用
 **/
public class Test {
    public static void main(String[] args) {
        sun();
        System.out.println("我被执行了");//我被执行了   说明

    }
    public static void sun(){
        //return在循环中,直接结束外层循环
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 2; j++) {
                System.out.println("执行次数:"+(j+1));//执行次数:1
                return;
            }
            System.out.println("1");//这句没有被执行----> 说明return执行后直接跳到调用方法的地方,继续向后面执行
        }
    }
}
package NeiBuLei;


/**
 *
 **/
public class Test {
    public static void main(String[] args) {
        sun();
        System.out.println("我被执行了");//我被执行了   说明
        /**
         * 执行结果
         * 6
         * 我被执行了
         */

    }
    public static void sun(){
       int a=6;
       switch (a){
           case 1:
               System.out.println("1");
               break;
           case 3:
               System.out.println("3");
               case 6:
                   System.out.println("6");
                   return;
           /**
            * return:结束本方法,执行该语句后跳到方法调用处,后面的语句都不会继续执行
            */
           case 7:
               System.out.println("7");
               break;
           default:
               System.out.println("dd");
               break;


       }
    }
}

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/278330.html

(0)
上一篇 2022年8月2日
下一篇 2022年8月2日

相关推荐

发表回复

登录后才能评论