方法是什么
方法是一种语法结构,它可以把一段代码封装成一个功能,以方便重复调用
方法的好处:提高了代码的复用性 让程序的逻辑更清楚
public class MethorDemo { public static void main(String[] args) { int d = sum(10,20); System.out.println(d); } public static int sum(int a,int b){ int c = a+b; return c; } }
方法定义 调用
方法完整的定义格式:
修饰符 返回值类型 方法名(形参列表){
方法体代码(需要执行的功能代码)
return 返回值;
}
例:
public static int add (int a,int b){
int c = a+b;
return c;
}
方法的调用格式:
方法名(...);
int sum = add(10,20);
System.out.println(sum);
方法格式的注意点
方法的修饰符:暂时使用public static后面会深入讲解
方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据
形参列表可以有多个,甚至可以没有;如果有多个形参加“,”隔开,且不能初始化
注意事项
如果方法不需要返回结果,返回值类型必须申明成void(无返回值),此时方法内部不可以使用return返回数据。
方法如果没有参数,没有返回值类型申明为void可以称之无参数,无返回值的方法,以此类推。
1.如果方法不需要返回结果,不需要接收参数,应该怎么办,要注意什么?
方法没有申明返回值类型,内部不能使用return返回数据
方法如果没有形参列表,调用的时候则不能传入参数值,否则报错
方法不需要返回结果,则申明返回值类型为void;方法不需要参数,则形参列表可以不写
方法使用的常见问题
1.方法的编写顺序无所谓
2.方法与方法之间是平级关系,不能嵌套定义
3.方法的返回值类型为void(无返回值),方法内则不能使用return返回数据,如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据
4.return语句下面,不能编写代码,因为永远执行不到,属于无效代码
5.方法不调用就不执行,调用时必须严格匹配方法的参数情况
6.有返回值的方法调用时可以选择定义变量接收结果,或者直接输出,直接调用;无返回值方法的调用只能直接调用
简洁总结:
1.顺序:在main之前,也可以之后(无顺序)
2.平级,不能嵌套
3.void,不能return,有返回值类型必须return
4.return,下面不能写代码
5.方法不调用就不执行,调用必须严格匹配方法的参数
6.有返回值:①定义变量接收结果②输出调用③直接调用
无返回值:①直接调用
方法调用时需要进入栈内存
栈后面会提到:先进后出,后进先出
方法的参数传递机制
Java的参数传递机制:值传递
在传输实参给方法的形参的时候,并不是传输实参变量本身,而是传输实参变量中存储的值,这就是值传递
注意:
实参:如在方法内部定义的变量
形参:如在方法定义时,“()”中所声明的参数
1.基本类型和应用类型的参数传递有什么不同?
两者都是值传递
基本类型的参数传存储的数据值
引用类型的参数传存储的地址值
方法重载
同一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法
可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,这是一种专业的代码设计
public class MethorDemo { public static void main(String[] args) { fire(); fire(999); fire(999,"M国"); } public static void fire(){ System.out.println("发射1枚导弹给M国"); } public static void fire(int a){ System.out.println("发射"+a+"枚导弹给M国"); } public static void fire(int a,String s){ System.out.println("发射"+a+"枚导弹给"+s); } }
1.方法重载是什么样?
同一个类中,多个方法的名称相同,形参列表不同
2.使用方法重载的好处?
对于相似功能的业务场景:可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,这是一种专业的代码设计
方法重载的识别
1.方法重载的关键要去是什么?
只要是同一个类中,方法名称相同,形参列表不同,那么他们就是重载的方法
(如:修饰符,返回类型都无所谓)
2.形参列表不同指的是什么?
形参列表不同指的是:形参的个数,类型,顺序不同,不关心形参的名称
return
return; → 可以立即跳出并结束当前方法的执行
public class MethorDemo { public static void main(String[] args) { chu(10,0); } public static void chu(int a,int b){ if (b==0) { System.out.println("除0报错"); return; } System.out.println(a /= b); } }