java学习笔记day06


1,方法

 

 eg:

 2,关于方法我们需要学会什么

①怎么定义方法

②怎么调用方法

③方法的内存图

④方法的参数传递机制

⑤方法其他常见形式,技术

3,方法定义,调用

···方法完整的定义形式,调用

 eg:

 ···方法的其他定义形式,调用

 eg:

4,方法使用的常见问题

 注意:方法不能嵌套定义的意思是:

在一个定义了的方法中不能重新定义其他的方法,比如在main方法里面,再写public static void xxx(){}就会报错

eg:

5,案例

 说明:

 ??案例1:计算1-n的和返回

 eg:

 ??案例2:判断整数是奇数还是偶数

 

 eg:

 ??案例3:数组求最值用方法实现

 

 eg:

 ??补充案例4:最大值输出(个人练习)

需求:结合前面所学知识,使用动态初始化数组,遍历输出随机生成的数组,并输出其中的最大值

分析:

①动态初始化数组,长度设3;

②生成随机数据,1-1000范围内

③遍历数组后输出结果

④对数值的最大值进行输出

eg:

 优化:

①在比较最大值时,for循环里的i应设为1,表示最大值max首先与数组的第二个数比较,因为max初始值就是数组的第一个数,如果i为0,表示要与自己比较一次,重复了,这可以设置一个计数器来查看比较次数,从而了解比较的效率高低(多条数据如10000000000条的方向来比较)

②bug:程序中max的默认值应该在数组随机生成之后再定义,否则会默认max的值为0,此时,当数组如果都是负数时,max最大值自然为0,显然与测试初衷不一致。而在数组动态随机初始化后再定义,就能稳定在已知数组中比较最大值,得出确定的结果

优化结果:

 自评成绩:99分!多一分怕你骄傲!

6,方法调用的内存图

 内存图解:

 注:

①方法调用完后,会退出栈内存

②方法调用在栈内存中的顺序是先进后出,main最先放入,最后放出,程序结束

③方法调用类似于,枪发射子弹:方法区->栈内存->结束

eg:

7,方法的参数传递机制

···基本类型的参数传递

值传递

 eg:

···引用类型的参数传递

 总结:

 引用类型的地址值不会改变,但有可能会使地址指向的内存中的数据发生改变,相当于两个变量A B指向同一个地址,如果B改变了地址所指向的值,那么A也会改变,有“一荣俱荣一损俱损”的意思

8,方法的参数传递案例

 ??案例1:打印数组内容

 eg:

 注意:

当用户传入的数组为null或者{}里没有数据时,直接对数组进行遍历是行不通的,应该规避类似情况:

为上述代码添加判断语句:

 ??案例2:从数组中查询元素的索引返回

 eg:

??案例3:

 eg:

 注意:判断两个数组是否相同,首先在长度方面要保持一致,这是必要条件,其次,对比数组中每个相同索引指向的数据进行对比,有一个不同就返回false,如果遍历完数组后都找不到索引指向的两个数组的数据不同,则认为这两个数组是相同的,直接返回true。

9,方法重载

 ···方法重载的形式

 eg:

 ···方法重载的作用:

eg:

···方法重载的识别技巧

 总规则:

 eg:名称一样,形参类型一样,即使形参名称不一样,也视为一个重复方法,会报错,其并不是重载的方法

10,单独使用return关键字

 eg:

 总结:

 11,方法大总结

思维导图:

链接:https://pan.baidu.com/s/1S7kcVY0sDmJ6tfwmJetAzw
提取码:1ju4

 

 over!(2022,5,10,16:35)

相关