Day01_Java方法

方法的定义

方法是Java中的一种语法结构,它可以把一段代码封装成一个功能,以便重复调用

方法的完整格式

修饰符 返回值类型 方法名(参数列表){
	方法代码;
	return 返回值;
}
// 方法名需要又意义,一般使用驼峰命名法

需求实例1

public class demo1 {
    public static void main(String[] args) {
        /*
            目标: 通过简单实例,掌握方法的定义和好处
            实例: 求两个整数的和
         */
        int c = sum(10, 11);
        System.out.println(c);
        int d = sum(11, 12);  // 方法可以方便后续针对多种情况的重复调用
        System.out.println(d);
    }
    public static int sum(int a, int b){
        return a + b;
    }
}

注意事项1

1. 方法需要调用才能执行,并不会自动执行
2. 如果方法声明了具体的返回值类型,内部必须使用return返回对应类型的数据
3. 参数列表可以有多个,也可以没有,如果有多个参数,多个参数必须用‘,’隔开,切参数不要给初始值

需求实例2

public class demo2 {
    public static void main(String[] args) {
        /*
            目标: 根据实例掌握方法的其他定义方式
            需求: 设计一个函数,实现hello world的打印
            需求1: 打印三行world
            需求2: 实现打印多行hello,次数由调用者决定
            void: 无返回值,函数不需要返回内容
         */
        printHelloWorld(); // 打印三行hello world 无参数无返回值函数
        printHelloWorld(6); // 打印6行hello, 有参数无返回值函数

    }
    public static void printWorld(){
        for (int i = 0; i < 3; i++) {
            System.out.println("world");
        }
    }
    public static void printHello(int n){
        for (int i = 0; i < n; i++) {
            System.out.println("hello");
        }
    }
}

注意事项2

1. 如果函数不需要返回数据,返回值必须声明为void,此时方法内部也不可以使用return返回数据
2. 方法如果不需要接收数据,则不需要定义形参,且调用方法时也不需要传递数据给方法了
3. 没有参数,且没有返回值类型(void)声明的方法,称为无参数、无返回值的方法...此次类推

方法使用时的常见问题

1. 方法在类中的位置放前放后无所谓,但是一个方法不能定义在另外一个方法里面
2. 方法的返回值类型时void时,方法内不能使用return返回数据(不等同于不能使用return),如果方法的返回值类型写了具体类型,那么方法内部必须返回对应类型的数据
3. return语句后面,不能在编写代码,因为后面编写的代码属于无效代码,函数执行不到这里
4. 方法不调用就不会执行,调用方法时,传递给方法的参数,必须严格匹配方法的参数情况
5. 调用由返回值的方法,有3种方式,(1)可以定义变量接收结果 (2)直接输出调用 (3)可以直接调用,而不要结果
6. 调用无返回值的方法,只有一种方式,只能直接调用

方法的运行

1. 方法在栈中运行
2. 栈的特性: 先进后出

方法的参数传递机制:值传递

  1. 所谓的值传递,指的时在传输实参给方法的形参的时候,传递的时实参变量中存储的值的副本

  2. 实参: 在方法内部定义的变量;形参: 定义方法时(…)中声明的参数

  3. 引用类型的参数传递,也符合值传递,但是会有一些不同的效果

    public class demo3 {
        public static void main(String[] args) {
            /*
                目标: 掌握方法的参数传递机制: 值传递
             */
            int a = 10;
            change(a);
            System.out.println("实参的值:" + a);
            int[] arr = {10, 20, 30};
            System.out.println("传递的参数值为:"+ arr);
            changeArray(arr);
            System.out.println("函数修改值:" + arr[1]);
        }
        public static void change(int a){
            System.out.println("传入的参数:" + a);
            a = 20;  // 修改形参并不会影响到外部的实参,由于引用类型传递的是数据在内存中的地址,所以修改引用类型的数据,会影响到外部的数据
            // 但是引用类型并不是传递具体的数据,而是传递的数据在内存中的值,所以也符合值传递
            System.out.println("修改传入的参数为:" + a);
        }
        public static void changeArray(int[] arr){
            System.out.println("形参的值为:" + arr);
            System.out.println("传入的参数的第二个位置的元素:" + arr[1]);
            arr[1] = 100;
            System.out.println("修改传递参数第二个位置的元素:" + arr[1]);
        }
    }
    

方法重载

定义: 一个类中,出现多个方法的名称相同,但是它们的形参不同,那么这些方法可以同时存在,这些方法就被称为方法重载

public class demo1 {
    /**
        目标: 掌握方法重载
     */
    public static void main(String[] args) {
        tes(); // 此时执行的是无参数、无返回值方法
        tes(10); // 此时执行的是有参数、无返回值方法
    }
    public static void tes(){
        System.out.println("这是第一个方法");
    }
    public static void tes(int a){
        // 此时,一个类种出现两个重名方法并不会出现异常,这是因为java可以根据传递的参数来确定是那个方法要被执行
        System.out.println("这是添加参数的tes方法"+ a);
    }
}

方法重载的注意事项

  1. 一个类中,只要一些方法的名称相同、参数列表不同。那么它们就是方法重载了,其他的不管(如:修饰符、返回值类型是否一样都无所谓)
  2. 形参列表不同指的是:形参的个数、类型、顺序不同,并不关心形参的名称

return关键字在方法种的单独使用

在无返回值的函数中,可以使用**return;**来跳出当前方法的执行,这个时候也是没有返回值的,由于return并没有返回某个数据,所以程序并不会报错

public class demo02 {
    /*
        目标: 掌握return关键在在无返回值函数的使用
     */
    public static void main(String[] args) {
        tes(-5);
        tes(5);

    }
    public static void tes(int a){
        if(a <  0){
            System.out.println("不符合格式~~");
            return; // 这里return没有返回任何数据,所以并不会出现任何异常
        }
        for (int i = 0; i < a; i++) {
            System.out.println("第"+i +":" + i);
        }
    }
}
  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值