方法
方法的概念
方法是一种语法结构,它可以把一段代码封装成一个功能,以方便重复调用。
使用方法的好处
1·提高了代码的复用性和开发效率
2·让程序的逻辑更清晰
方法的定义格式
完整格式
修饰符 返回值类型 方法名 (形参列表){
public static int add (int a,int b)
int c=a+b; //方法的执行代码
return c; //返回值
注意:形参列表中的参数不能赋予初始值;return语句下面,不能编写代码,因为永远执行不到,是无效代码。
其他格式
public static void print(){
System.out.println("hello");
System.out.println("hello");
System.out.println("hello");
}
注意:如果方法不需要返回结果,返回值类型必须申明为void,此时方法内部不可以使用return返回数据;方法不需要参数,则形参列表可以不写。
调用方法
public static int a{
public static void main(String[] args){
int m=add(100,200);
System.out.println(m);
}
public static int add(int a,int b){
int c=a+b;
return c;
}
}
注意:方法不调用就不执行,且调用时应严格匹配方法的参数情况
方法调用的内存图
1·方法没有被调用时,在方法区中将方法的字节码文件中存放
2·方法被调用时,需要进入到栈内存中运行![在这里插入图片描述]
方法的运行区域:栈内存
方法的参数传递机制
基本类型的参数传递
传递机制:值传递
在传输实参给方法的形参的时候,并不是传输实参变量本身,而是传输实参变量中存储的值。
注意:
实参:在方法内部定义的变量
形参:在定义方法时,“()”中所声明的参数
public class a{
public static void main(String[] args){
int a=10; //实参
int b=20; //实参
change(a);
}
public static void change(int c){
}
}
注:int c 为形参
public class Ex{
public static void main(String[] args){
int a=10;
changge(a);
System.out.println(a); //10
}
public static void change(int a){
System.out.println(a);//10
a=20;
System.out.println(a);//20
}
引用类型的参数传递
public class Ex{
public static void main(String[] args){
int[] arr=new int[]{10,20,30};
change(arr);
System.out.println(arr[1]); //222
}
public static void change(int[] arr){
System.out.println("方法内部:"+arr[1]); //20
arr[1]=222;
System.out.println("方法内部2:"+arr[i]); //222
}
}
基本数据类型与引用数据类型参数传递方式的不同:基本类型的参数传输存储是的数据值,引用类型的参数传输存储的是地址值。
方法重载
定义:同一个类中,出现多个方法名称相同,参数列表是不同的方法就是重载方法。
public class a{
public static void name(){
System.out.println("张三");
}
public static void nanme(String class){
System.out.println(class+"张三");
}
public static void name(String class,int age){
System.out.println(class+"张三的年龄是:"+age);
}
}
调用方法的时候,会通过参数的不同来区分调用的是哪个方法。
优点:对于相似功能的业务场景,可读性好;方法名称相同提示是同一类型的功能,通过不同实现功能差异化的选择。
形参列表的不同是指:形参的个数,类型,顺序不同,与形参名称无关。
return的用法
return的用法
1.返回方法指定类型的值(这个值总是确定的),如果一个方法的功能是进行一些赋值、打印或修改,那么它可不返回值,
如果这个方法是为了获取某个属性的值的话,那么一般是需要返回值的。
2.结束方法的执行(仅仅一个return语句)
public class a{
public static void main(String[] args){
int num=add(1,2);
System.out.println(num);
}
public static int add(int a,int b){
int c=a+b;
return c;
}
}