Java的方法

方法

方法的格式1

格式:有返回值的

修饰符 返回值类型 方法名(){
特定功能的代码块;
return 返回值; // 一定要放在方法的最后面(}前面),返回值谁调用就给谁
}

方法的格式2

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参
数名2......){
特定功能的代码块;
return 返回值;
}

方法格式的解释

  • 修饰符 目前固定写法 public static 等到讲面向对象时再变

  • 返回值类型 用于限定返回值的数据类型(return 后面的值的类型)

  • 方法名 起一个命名(看第一天命名规范),方便我们调用

  • 参数类型 用于接收调用方法时传入变量的数据类型 参数名就是变量名(看第一天命名规范)

  • 特定功能的代码块 完成具体功能的代码

  • return 放在方法的最后(放在}的前面) 把返回值给调用者(谁调用给谁)

方法的格式3

如果写方法,不需要有返回值,不用写返回值类型,用void替代,也就不需要return语句。

修饰符 void 方法名(){
特定功能的代码块;
}

方法的格式4

修饰符 void 方法名(参数类型 参数名1,参数类型 参数名
2......){
特定功能的代码块;
}

方法的注意事项

① 首先写方法时明确两点:
1.有无返回值,返回值是什么数据类型
2.有无参数,如果有参数,要明确有几个参数,以及参数的数据类型
② 方法中只能调用方法或属性,方法不能嵌套定义 ③ 没有具体返回值的情况,返回值类型用关键字 void 表示,那么方法体中可以不使用 return语句; ,如果使用,仅仅用来结束方法。( void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据 )

④ 方法被调用一次,就会执行一次。方法通过方法名被调用,且只有被调用才会执行。
⑤ 定义方法时,方法的结果应该返回给调用者,交由调用者处理。

方法的重载

面试题:请问重载和重写的区别

重载的概述

在同一个类中,允许存在一个以上同名的方法,只要他们的参数个数或参数类型不同就行。

重载的特点:一个相同,两个不同(至少满足一个) 单词@Overload,方法名相同,参数个数或参数类型不同与返回值无关

注意:调用重载的方法,java虚拟机(jvm)根据参数列表的不同区分同名的方法,传入参数时,跟参数类型传入

使用场景:构造器就是用的重载

public static int addSum(byte a,byte b){
return a+b;
}
public static int addSum(short a,short b){
return a+b;
}
public static int addSum(int a,int b){
return a+b;
}

方法重载的好处:使用方法重载,可以为编程带来方便:让方法的调用者,在调用方法的时候,不需要为了相似的功能去查阅文档,查找各种不同的方法名,降低学习成本,提高开发效率。例如: System.out.println() 方法就是典型的方法重载,可以查看源码。

参数的传递

形式参数(形参):用于接收实际参数的变量(int a ,int b)
实际参数(实参):实际参与运算的变量 (10,20)

方法的参数为基本数据类型

基本数据类型:byte、short、int、long、char、boolean、float、double
形式参数的改变不影响实际参数(形参是基本数据类型)。

结论

如果传入是基本数据类型,形式参数的改变不影响实际参数

原因

每个方法在栈内存中,都会有独立的栈空间,方法运行结束就会弹栈消失。形参是基本数据类型,那么实参将基本数据类型变量的 “数据值” 传递给形参。

方法的参数为引用数据类型

引用数据类型:类、接口、数组形式参数的改变影响实际参数(形参是引用数据类型)

结论

如果传入是引用数据类型,形式参数的改变会影响实际参数

原因

引用类型传参,传入的地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈(消失),堆内存中的数据也
已经是改变后的结果了。形参是引用数据类型,那么实参将基本数据类型变量的 “地址值” 传递给形参。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值