Java笔记Day_07

方法的概述

方法: 封装了特定功能的代码块

        好处

                1.提高代码的复用性 //可以把重复的内容封装到方法内, 需要使用此功能就调用一次方法

                (方法里可以写循环,但是循环里不可以写方法,只能调用方法)

                2.方法可以实现数据的传递 //今天学方法可以实现数据在一个类中多个方法内传递

区分方法和函数

        Java中单独有函数概念[函数式编程], 所以在Java中不习惯把方法叫函数

        方法: method

        函数: function

方法的定义格式

参数和返回值

        1.形式参数[形参]: 在定义方法时, 要求调用者传递的参数 //实际上做运算的参数[数据]

        (形参: 是对调用者启动方法的要求)

        2..实际参数[实参]: 在调用方法时, 真实传递给方法的数据 //实参: 是真实的数据, 是实际参与运算的

        (实参: 是调用者真实传递给方法的数据)

        有形参就必须有实参, 无形参就不可以有实参

        要什么给什么 -->方法的形参要什么, 调用者启动方法时就需要传递什么

返回值:

        调用完方法时,得到的结果; //返回值是一个具体的数据

                如果方法调用完毕能得到一个具体的数据 -->称这个方法有返回值

                如果方法调用完毕能得到一个具体的数据但是没有返回给调用者 -->称这个方法无返回值

                如果方法调用完毕没有得到一个具体的数据 -->称这个方法无返回值

要区分方法的结果和效果

无参无返回值方法

无参无返回值方法: 定义方法时没有形参, 调用完方法时没有结果的方法 //没有结果不代表没有效果

格式:

        public static void 方法名(){

                方法体;

        }

格式解释:

        //今天定义方法 无脑写public

        public: Java中的访问权限修饰符 -->公共的[是Java中最大的访问权限:整个模块内都可以访问]

        //今天定义方法 无脑写static -->原因是 今天的方法都是在main方法中调用, 而main方法时static修饰的

        static: Java中的状态修饰符 -->静态的[被static修饰的方法随着类的加载而加载]

        void: 无返回值 -->此关键字只在方法知识点上用,只表示无返回值

        方法名: 方法名给程序员使用, 使用方法就是调用方法的方法名

                命名规则: 小驼峰

        (): 方法定义格式上, 方法名后方的小括号内写的是 形式参数[形参]

                如果此时看到小括号内没有任何东西, 就代表这个方法是一个无形参的方法!

        {}: 代码块 -->包裹逻辑体[方法体]

        方法体: 逻辑功能代码

无参无返回值方法的调用格式:n

        方法名(); //无参无返回值方法的调用格式只有这一种

无参无返回值方法的流程图

无参无返回值方法的调用内存图

有参无返回值方法

有参无返回值方法: 在定义方法的时候定义了形式参数, 但是方法执行完毕后没有结果返回给调用者 -->重点: 方法的参数传递问题

定义格式:

        public static void 方法名(形式参数){

                方法体;

        }

格式解释:

        形式参数列表:

                形式参数: 向调用者索要启动方法时的数据 //要什么就写什么

                列表: 说明形式参数的数量可以不止一个, 可以是多个  !

        形式参数列表的格式:

                方法名(数据类型1 形参名1, 数据类型2 形参名2,....)

                形式参数列表上的变量定义格式 和 普通变量的定义格式 不同的是少了变量赋值的操作 -->原因是因为: 形式参数列表上的变量要等到调用方法时 由 实际参数赋值

有参无返回值方法的执行流程图

有参无返回值方法的内存图

无参有返回值方法[跳过]

有参有返回值方法[方法的完全体]

有参有返回值方法: 调用方法时需要传递数据, 方法调用完毕后会产生结果返回给调用者的方法;

定义格式:

        public static 返回值类型 方法名(){

                方法体;

                return 返回值;        

                //return后方不可以写代码了!

        }

格式解释:

        返回值类型: 方法结果[简称返回值]数据的数据类型

                方法返回值类型可以是基本数据类型, 也可以是引用数据类型

                如果使用: 拿具体的数据类型名称 去替换 返回值类型 这个位置!

        return:

                1. 结束方法 -->当方法执行到return语句 方法会立刻结束

                2. 把方法的结果[返回值]返回给调用者

        返回值: 方法的结果 //要求: 返回值数据的类型必须和返回值类型一致! -->返回值类型约束了返回值的类型

                注意: 一个方法只能有一个返回值 //一个方法只能返回一个结果

有返回值方法的调用格式

        1.直接调用: 虽然方法执行了, 但是我们忽略了方法的结果 -->无意义

        2.输出调用: System.out.println(方法调用);-->有意义, 可以看到方法的结果, 但是不够好, 不能继续实现调用结果的使用

        3.赋值调用.var: 拿变量接收方法调用完毕后的结果, 后续可以继续使用方法的结果

                格式: 返回值类型 变量名 = 方法名(实参); //快捷键: 方法名(实参).var[强烈建议]

方法的注意事项

        1.方法必须定义在类中,其他方法外 //方法与方法之间是并列关系, 不能嵌套, 不能交叉

        2.方法要先定义 后调用 --> 不调用不执行, 调用几次执行几次

        3.方法必须要在其他方法内调用!

        4.当方法被调用时,会立刻进入到方法内执行, 当方法内的代码执行完毕才会继续执行调用方法后方的代码

        5.形式参数是局部变量, 但是形式参数可以再方法内不赋值直接使用 //因为此变量是形参

        6.如果方法有形参, 那么调用方法时需要传递实际参数[要什么给什么]

        7.实参可以是常量,实参也可以是变量, 实参变量的名字没必要和形参变量的名字一致

        8.形参实参匹配时, 必须一致的是: 数量, 类型, 类型顺序

        9.定义了返回值类型的方法必须有返回值[返回值的类型必须和返回值类型一致]

                

                

                这里的getSum(scores)调用函数,且括号里是个数组符合下面形参要求的int型数组

        10.方法的返回值类型 变相的决定了方法的调用方式有几种 :
                    无返回值方法[void] : 直接调用
                    有返回值方法 : a.直接调用 b.输出调用 c.赋值调用

return关键字

在方法内用

        作用:

                1.结束方法 -->当方法执行到return语句, 方法会立刻结束

                2.把方法的结果[返回值]返回给调用者

        注意:

                1.return后方只可以接 一个结果, 不可以同时返回多个结果 -->如果一定要返回多个结果, 可以把多个结果放到[数组/集合]中,把容器返回 //方法的返回值类型就必须是 容器类型

1.一个方法内只能有一个return吗?错误的, 一个方法内可以有多个return语句, 但是多个return不能同时执行!

2.无返回值的方法内 可以有return吗?可以有, 但是无返回值方法内的return语句只用来结束方法, return的后方不可以接任何值;

3.break 和 return 的区别 :
    break 只能结束循环或者switch语句
    return 是用来结束方法的 -> 退出的级别是比break高 

方法参数传递问题

形参是基本数据类型

形参是引用数据类型

方法的重载特性

方法的重载特性: Overload

        现象级: 在同一个类中, 出现了多个同名方法且代码不报错;

        方法重载特性是 服务调用者的一个方法特性, 可以让调用者更方便的使用方法 -->未来我们使用的非常多,定义的非常少        

方法重载的条件

        1.必须得在同一个类中

        2.必须方法名同名

        3.必须形参列表不一样[个数不一样, 类型不一样, 类型顺序不一样]

        4.与 返回值类型, 形参名, 方法体 无关

重载方法的调用 : 不要慌 !
        JVM会根据调用方法时,传递的实际参数去启动最匹配的方法 !    

可变参数

可变参数 : 关于形参的一种定义格式
    
可变参数的定义格式 : //可变参数在形参位置定义
        方法名(数据类型...变量名)

    当方法的形参是可变参数类型,此方法调用时可以传入任意个此类型的实参

    注意事项 :
        1. 可变参数的本质是数组
        2. 可变参数形参的后面 不可以有任意类型的其他形参 //可变参数后面不要再写形参了 !
        3. 可变参数的前面 可以有任意类型的其他形参 // 可变参数只能作为最后一个形参  

定义方法时的技巧

1. 定义方法时 需不需要定义形参列表 :  //一般情况 : 能定义形参就定义形参
        a. 如果此方法需要方法外部[调用者]提供数据,那么这个方法就定义成有形参的方法
        b. 此方法如果定义了形参,能让方法的复用性增强,那么最好给方法定义形参     
        
2. 定义方法时 到底是定义成有返回值方法还是定义成无返回值方法 : 
        看你需不需要方法返回一个结果,让调用者继续使用 :
                要 : 定义成有返回值
                不要 : 定义成无返回值
        真正要不要返回值 : 看需求  !!
                如果更看重的是 动作 : 建议 void //打印
                如果更看重的是 动作做完后的结果 : 建议 有返回值方法   //获取

方法调用时调错的技巧

1. 调用时 方法名报错 : 
        a. 要么没这个方法
        b. 要么方法名写错了
        
2. 调用时 实参列表报错 : 形参和实参不匹配
    
3. 调用时 整个调用方法的语句报错 : 调用方式错了

  • 30
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值