方法
方法的两个概念;参数与返回值
方法的三要素; 返回值 方法名 参数列表
返回值,一个方法执行后返回给调用处的结果
参数,哪一个参数不确定,即设为参数(形参)
1 参数
基本概念;是指进入方法中的数据,有了这些数据,方法才能执行逻辑。
Java的参数传递为值传递,对于对象而言,传递的是地址,使形参和实参指向同一个地址.
什么是参数?当前方法执行的时候所需要的外部(调用处)传入的数据。
形式参数:简称叫形参。声明方法的时候,用于接收外部传入的数据。
实际参数:简称叫实参。调用方法的时候,给形参所赋值,实际的数据。
调用方法的时候,用实际参数给形式参数进行赋值,这个过程被称为传参。
(参数传递:实参-->形参)
1、当我们在设计一个方法的时候,要看方法中有几个数值无法确定,
需要由调用处传入,那么就设计几个参数。多个参数之间使用,分隔开。
2、方法调用的时候:实参一定严格匹配形参:实参是按照顺序一一配给形参。
比如在个数,类型,顺序上,严格匹配。
3、JAVA的参数传递总是传"值",但是传值方式也分为两种方式,
它们是靠传递参数的类型区分的。
这两种类型分别为JAVA的基础类型和引用(对象)类型;
基础类型包括;boolean,byte,short,char,int,long,float,double,
引用数据类型;数组与集合。
public class A{
public static void main(String arg[]){
int a=3;
method1(a);
System.out.println(a);
}
public static void method1(int a){
a=4;
}
}
而 对于参数为数组对象时。
public class A{ public class A{
public static void main(String arg[]){
int[] a=new int[1];
a[0]=3;
method1(a);
System.out.println(a[0]);
}
public static void method1(int[] a)
a[0]--;
a=new int[0];
a[0]=4;
}
}
左边的结果将是2,右边的结果将是3(未变),
原因是:在传递的参数为对象时,这个传递的"值"中放的内容实际上是对向所在的地址,
左边的情况是指针定位到对象的地址后,在上面把内容给改了,所以数组的值后会改变,
而右边的情况为给对象新分配了一个指针到新的地址上面去,
所以所有的操作都在新的地址上面,并不会影响原来的值。
注:对于String,Interger,Boolean,Double等的系统对象,它们虽然是Object,
但是任何方式的传递参数的值得改变并不会影响原来的值。
按值传递的精髓是:传递的是存储单元中的内容,而不是存储单元的引用!
1.2 返回值
1、什么叫返回值?
返回值:表示一个方法执行之后,需要返回给调用处的结果。
需要在调用处声明一个变量,来接收这个结果。
是指从方法中出来的数据,也就是方法执行之后的最终结果数据。
返回值的注意点:
A:一个方法可以有返回值,也可以没有。
如果有,那么返回值的类型,要在声明声明方法的时候写清楚,如果没有返回值就写void(空的)。
public static 返回值类型/void 方法名(形式参数){
方法体;
}
B:如果一个方法有返回值,那么只能返回一个。
C:如果一个方法声明了有返回值,那么在方法中,必须使用return语句将数值返回。
一个方法最多只能返回一个数据,可以没有,但要声明为void数据类型
一个方法如果声明了返回值(非void),在程序结束时要返回结果,使用return语句
1.3 return语句
词义:"返回"
return语句有两个作用
1、将一个方法的结果返回给调用处。
2、结束该方法的执行。
return语句的注意点:
A:一个方法声明了有返回值,那么方法中必须使用return关键字将结果返回给调用处。
B:一个方法声明了有返回值,那么方法中如果有分支,循环语句等,要保证无论执行哪个分支,都要有return语句可以被执行到。
C:一个方法声明了有返回值,那么return后的数值必须和声明的数据类型一致。(自动转型)
D:一个方法如果没有返回值,那么也可以使用return语句,结束方法的执行。
E:习惯上return后没有语句了。
注;如果方法声明有返回值,在使用return 返回结果是,要返回相应的数据类型。
补;方法的声明
[修饰符1,修饰符2....] 返回值类型/void 方法名(形参列表){
方法体;
public static void main(String args []){
}
}
2 方法的分类
1.无参无返回值的方法:
public static void methodName(){
System.out.println("这是无参无返回值方法");
}
2.无参有返回值的方法:
public static void methodName(){
System.out.println("这是无参带返回值方法");
int a=3;
int b=4;
int sum=a+b;
return sum;
}
3.有参无返回值方法;
public void f(int i){
System.out.println("这是带参无返回值方法");
int sum=i+3;
System.out.println(sum);
}
4.有参有返回值方法;
public int testmain5(int m) {
System.out.println("这是带参带返回值方法");
int a=6;
int sum=a+m;
return sum;
}
三、总结
a.调用带参方法时,必须保证实参的数量、类型、顺序与形参相一致。
b.在调用方法时,实参不需指定数据类型。
c.方法的参数可以是基本数据类型,也可以是引用数据类型,数组
d.当方法参数多时,采用逗号分开。