一、Java中方法的定义
在讲示例之前,我先总结一下Java中方法如何定义以及如何调用
1.1 四种方法类型
Java中的方法可以分为以下四类:
- 无参数无返回值
- 无参数有返回值
- 有参数无返回值
- 有参数有返回值
1.2 方法定义的格式
格式: 访问修饰符 返回值类型 方法名(参数列表){
方法体;
}
1.3 名词解释
(1)访问修饰符:方法允许被访问的权限范围,可以是public、protected、private,还可以忽略,还有一点,public可以被任意代码调用
(2)返回值类型:这个可以为int,float,byte等等一些数据类型,一般在方法体中最后一句用return 返回一个参数
(3)参数列表:通常是我们在方法外要传入的参数,还可以传入数组等等
(4)方法体:这就很简单了呗,写下你想写的语句来满足你的要去就可以啦
1.4 看看这几个实例你也许就懂了
先举个最简单的实例把
//方法一,这是无参数无返回值的方法,有返回值的就是用return
public void show(){
System.out.print("大家好");
}
下面这个定义的就是有参数有返回值的方法
//很明显,这是一个比大小的方法,大的一者返回
public int exchange(int a,int b){
if(a>b)
return a;
else
return b;
}
是不是很简单呢?
二、Java中方法的调用
2.1 两种调用方法的方式
- 通过创建主函数的对象来调用方法
- 通过把 “static” 修饰符把方法可以直接调用函数
下面这个实例可能会有些复杂,但是看懂方法的调用的方式就可以了
2.2.1 问题描述
给定一个正整数N,然后求1! + 2! +3! +4!……N!
2.2.2 输入样例
3
2.2.3 输出样例
9
2.2.4 代码实现
方法一:
package gorit;
//求阶乘之和
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
Main a=new Main();// ==============看这里,我们在这里创建了一个Main 的对象 a,
int n=input.nextInt();
int S=0;
for(int i=1;i<=n;i++){
S += a.fac(i);//求阶乘之和 ==================在这里我们通过对象a来调用方法,这是第一种方法
}
System.out.print(S);
}
//定义求阶乘的函数,递归法
public int fac(int i){
if(i==0||i==1)
return 1;
else
return fac(i-1)*i;
}
}
方法二:
package gorit;
//求阶乘之和
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
//Main a=new Main(); 我们把这里把Main 创建的对象 注释掉=======1
int n=input.nextInt();
int S=0;
for(int i=1;i<=n;i++){
S += fac(i);//求阶乘之和 ===============这里把 a. 也去掉====2
}
System.out.print(S);
}
//定义求阶乘的函数,递归法
public static int fac(int i){
/*在这里public 与 int 之间加一个 static,
然后程序就可以运行了,我解释一下:因为main是static类型的,是类成员,类成员可以直接使用类成员,
所以我设置的方法用static修饰的话就可以直接使用,不需要创建对象*/
if(i==0||i==1)
return 1;
else
return fac(i-1)*i;
}
}