方法
1 定义
解决一类问题的代码的有序组合,是一个功能模块
2 方法声明
访问修饰符 返回类型 方法名(参数列表){
方法体
}
3 方法分类
根据是否带参数、是否返回值分为4类
3.1 无参无返回值方法
使用对象名.方法名去调用方法
注意:方法在类的内部定义
使用案例:打印星号
public class MethodDemo {
//打印输出星号的方法
public void printStar() {
System.out.println("************");
}
public static void main(String[] args) {
MethodDemo myMethodDemo=new MethodDemo();
myMethodDemo.printStar();
}
}
3.2 无参带返回值的方法
例如:Scanner方法
使用案例:求长方形面积
public class RS {
//求长方形面积的方法
public int area() {
int length=10;
int width=5;
int getarea=length*width;
return getarea;//返回语句
}
public static void main(String[] args) {
RS rc=new RS();
int x=rc.area();
System.out.println("面积:"+x);
}
}
3.3 有参无返回值方法
使用案例:求两数中的最大值
public class MaxDemo {
public void max(int x,int y) {
int max;
if(x>y) {
max=x;
}
else {
max=y;
}
System.out.println("最大值为"+max);
}
public static void main(String[] args) {
MaxDemo maxDemo=new MaxDemo();
int x=5,y=3;
maxDemo.max(x,y);
}
}
3.4 有参有返回值的方法
使用案例:求阶乘和
public class FacDemo {
public int fac(int n) {
int s=1;
for (int i=1;i<=n;i++) {
s*=i;
}
return s;
}
public static void main(String[] args) {
FacDemo facDemo=new FacDemo();
int fac=facDemo.fac(3);
int sum=0;
for(int i=1;i<=5;i++) {
fac=facDemo.fac(i);
sum+=fac;
}
System.out.println(""+sum);
}
}
4 数组作为方法参数
使用案例:输出数组元素
public class ArrayMethod {
public void printArray(int[] arr) {
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[] arr= {10,20,30,40,50};
ArrayMethod am=new ArrayMethod();
am.printArray(arr);
}
}
使用案例:查找数组元素
import java.util.Scanner;
public class Searchx {
public boolean search(int n,int[] arr) {
boolean flag=false;
for(int i=0;i<arr.length;i++) {
if(arr[i]==n) {
flag=true;
break;
}
}
return flag;
}
public static void main(String[] args) {
int[] arr= {10,20,30,40,50};
Scanner sc=new Scanner(System.in);
System.out.println("请输入要查找的数据");
int n=sc.nextInt();
Searchx as=new Searchx();
boolean flag=as.search(n, arr);
if(flag) {
System.out.println("找到了");
}
else {
System.out.println("没找到");
}
}
}
5 方法重载
定义:
方法名相同,参数列表不同
方法执行顺序:
主方法->调用的方法->主方法中剩下的部分
主方法必须使用对象的名称进行调用,同一个类中的普通方法直接使用方法的名字进行调用
数组的参数传递问题
在方法中对数组元素进行修改时、也影响到了主方法中的数组。
引用类型中的数组会产生影响。
可变参数列表(可变元参数)
定义:参数的数量不确定
使用案例:
public class ArgsDemo {
public void sum(int...n) {
int sum=0;
for(int i:n) {
sum+=i;
}
System.out.println("sum="+sum);
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
ArgsDemo ad=new ArgsDemo();
ad.sum(1);
ad.sum(1,2);
ad.sum(1,2,3);
}
}
注意:
- 参数列表中如果有两个以上的参数,可变参数一定是在最后的
- 可变参数列表所在的方法是最后被访问的
- 可以将数组传递给可变参数列表
- 数组可以将和可变参数列表兼容,可变参数列表不能与数组兼容;不能将可变参数列表的值传递给数组,可以将数组的值传递给可变参数列表