JAVA-方法

目录

4.1JAVA方法

4.1.1Java 程序方法的作用

4.1.2方法定义完整和其他形式 方法调用

4.1.3方法定义的注意事项:

4.2 几个方法案例

4.2.1求和 计算1-n

4.2.2判断是奇数还是偶数:

4.2.3 求数组的最大值(使用方法进行操作)

4.3 方法调用内存图

4.4 方法的参数传递机制

4.4.1基本类型的参数传递-传递原理

4.5方法参数传递的案例

4.6方法重载,return关键字(important)

4.6.1方法重载定义和优势

4.6.2方法重载的识别技巧

4.6.3 return的单独使用


4.1JAVA方法

4.1.1Java 程序方法的作用

1.可以提高代码的复用性和开发效率;

2.让程序的逻辑更加清楚

注意main方法不能把定义的sum方法包裹住,需要独立出来

方法需要学到的东西:

  1. 怎么定义方法 写法很多 需要掌握在不同场景下合适的方法形式。
  2. 如何调用方法 定义出的方法只有调用出来 才可以方便代码运行
  3. 方法的内存图 了解方法在内存中是如何工作的 (类似数组中内存是如何进行分配的)
  4. 面试热点(important)方法参数的传递原理,需要注意其中的问题。(需要明白的是传地址还是传数据)
  5. 方法其他常见形式,技术。比如方法重载,方法递归(文档搜索,算法内容,后期讲)

4.1.2方法定义完整和其他形式 方法调用

特殊的方法定义形式:

4.1.3方法定义的注意事项:

 1.方法编写在main之前或者main之后 不影响方法定义和调用

 2.方法和方法之间属  于是同级关系 不能有嵌套关系

特别注意main方法和新定义的方法在书写上不要有包含关系,不然会使得在调用时,找不到对应的方法。

3.方法的返回值类型如果是void,方法内则不能使用return返回数据,如果方法的返回值类型写了具体数据,方法内部就必须使用return返回对应数据的类型

4.return语句下面,不能编写代码,系统会提示永远执行不到;

5.方法不调用就不会执行,调用时必须严格匹配方法的参数情况(有几个形参,调用时就需要给到几个参数)

6.有返回值的方法调用时,可以选择定义变量接收结果,或者直接输出调用,甚至直接调用,如果没有返回值的话只能按返回值,简单调用一次。

4.2 几个方法案例

4.2.1求和 计算1-n(如果涉及方法 是不是可以通过循环 重复定义方法 当然直接等差求和也可以)

4.2.2 判断奇偶数(是不是采用方法 除以2取余数,if else =1为奇数 =0 为偶数)

4.2.3 判断最值(之前数组冒泡排序)

4.2.1求和 计算1-n

方法定义技巧

用算法:

输出结果为12502500

不用算法:

输出结果为:

4.2.2判断是奇数还是偶数:

需求:给定一个整数,判断是奇数还是偶数。

分析:因为需要传入数据做出判断,所以需要声明形参作数据接收,通过if语句判断

注意,奇数偶数不仅仅是只涉及到自然数,还有负数,所以加个Math.abs;

把这个题目改成一个录入系统测试多个数据,反馈结果如下:

4.2.3 求数组的最大值(使用方法进行操作)

  1. 需要考虑的两个点:

要返回最大值,需要申明返回值类型;

       需要接受数组,需要申明形参列表;

  1. 方法内部找出最大值并返回。

 我厂

4.3 方法调用内存图

方法没有被调用的时候,在方法区中的字节码文件中存放;

方法被调用的时候,需要进入到栈内存中运行。

可以认为是方法(子弹)放入方法区域(弹夹),使用的时候压入栈内存(枪膛)中击发。

首先将方法放入到方法区,会有Test.class方法 ,main方法,add方法,

先执行main方法,会把main方法提到栈内存里,

这时候再把add方法加入到栈内存中跑;

调用add ,开辟a,b 区域,产生c,返回c,给到sum,最后输出sum;

再执行main方法,执行结束之后,main方法再退出栈内存;

方法的运行区域在栈内存。

4.4 方法的参数传递机制

4.4.1基本类型的参数传递-传递原理

值传递- 在传输实参给方法的形参的时候,并不是传递实参变量本身,而是传输实参变量中储存的值

实参:方法内部定义的量

形参:如在定义方法时,“()”中所声明的参数。

上面输出的结果为10、20、10

执行步骤:方法区有三个方法,Test.class 方法, main方法和change方法;

首先执行main,change(10),调用change方法,把传递给实参a,输出a,10,;

之后在change方法里,执行赋值和输出语句,输出20;

change执行完成后,继续执行main方法,输出a ,实参变量的值没有变化。

形参指的是小括号里的,定义方法时的变量;

实参:在方法内部定义的变量;

4.4.2引用类型的参数传递

比如 数组,传递的是的数组对应的地址,在这个传递过程中,注意数组的变化;

传递的是地址,会重复的调用堆内存中的数组和地址,堆内存的数据会被赋值改变,所以再次调用的时候会出现新的赋值数据,所以输出结果会是change方法→(访问数组第二个位置20);change方法→(访问被新赋值的数组第二个位置222);main方法(访问数组第二个位置-已经在堆内存中改变的数据222。最后输出情况 20 222 222;

4.5方法参数传递的案例

打印数组内容

设计一个方法 用于输出整型数组的内容,要求输出成下列格式:

“该数组内容为[11, 22, 33, 44, 55]:”

使用方法

1:定义方法的时候要想到 需不需要参数,需不需要返回值类型

2.:定义一个静态初始化数组,调用该方法,并传入该数组

(我直接输出 Array.toString)

Result 1:

   懒得区分length-1了。。。这方法真没啥太大意义

Result 2:

这里直接调用 Array.toString  简单高效

4.6方法重载,return关键字(important)

4.6.1方法重载定义和优势

同一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法;

Simply,名称相同,形参不同

Case:现在需要开发一个武器系统,功能需求如下:

  1. 可以默认发一枚武器;2.可以指定地区发射一枚武器 3.可以指定地区发射多枚武器;

方法名称都是fire

  

在调取方法的时候,会根据需要,对应不同的形参,调具体的方法

重载的好处在于:可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,代码设计更专业(名字见名知意,通过形参区分细节)。

4.6.2方法重载的识别技巧

只要是在同一类(.class)中,方法名称相同、形参列表不同,那么他们就是重载方法,其他都不管。(修饰符和返回值无所谓)

具体形参不同:指的是形参的个数、类型、顺序不同,不关心形参的名称。

4.6.3 return的单独使用

Return 的作用就是 直接跳出方法的执行 重新返回到调用方法之后

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值