函数
- 什么是函数
- java如何定函数
- 函数的分类及调用
- 无参无返回值方法
- 无参带返回值方法
- 带参无返回值方法
- 带参带返回值方法
- 函数重载(overload)
- 函数递归
什么是函数
定义:Java中函数也叫成方法,函数是封装了具备特定功能的一段代码块,解决了重复性代码的问题。
过程:N个小过程组成;简化整个过程;实现代码的高度复用!!!
java如何定函数
访问修饰符(public..) 函数返回值的类型(void,int,double....) 函数名称([参数列表]) {
// 函数体
// return 返回值;
}
java中函数是属于类的;必须定义在类中;所以说函数是类成员
java中:静态方法没有办法直接调用;非静态方法只能调用静态方法
static 表示静态方法
eg:
public static void average(double sum){
System.out.println("平均值为:"+sum/5);
}
函数的分类及调用
根据是否带参数和返回值分为以下四种类型
调用的函数为非静态函数时需要现在类中创建一个对象在使用对象名.方法名的形式调用
函数eg:
public void in(){
System.out.print("12356");
}
调用:
class Ha{
public static void main(String[] args){
Ha pr = new Ha;
pr.in();
}
无参无返回值方法
1.没有返回值时,在定义函数时,函数返回值的类型为void
2.无参数即()里面无内容;
调用
直接调用; 函数eg:
public static void num(){
for (int i=100;i<=1000 ;i++ )
{
if (i%5==0 && i%6==0)
{
System.out.println(""+i);
}
}
}
调用eg:
public class Number56
{
public static void main(String[] args){
num();
}
}
无参带返回值方法
1.定义函数时函数返回值的类型为数据类型(int,double…)
函数eg:
public static double pi(){
double a = 0;
for (int i = 1; i <= 100000; i++) {
a += Math.pow(-1, i + 1) / (2 * i - 1);
}
return a * 4;
}
调用eg:
public class PI
{
public static void main(String[] args){
System.out.println(pi());
}
}
带参无返回值方法
函数eg:
public static void average(double sum){
System.out.println("平均值为:"+sum/5);
}
调用eg:
public static void main(String[] args){
int[] a=new int[]{1,2,3,4,5,6};
double sum=0;
for (int i=1;i<=5;i++)
{
System.out.println("请输入第"+i+"门成绩:");
Scanner in=new Scanner(System.in);
a[i]=in.nextInt();
sum=sum+a[i];
}
average(sum);
}
带参带返回值方法
函数eg:
public static int bits(int num) {
if (num <= 10) {
int c = num % 10;
return c;
} else {
int c = num % 10;
return c + bits(num / 10);
}
}
调用eg:
public class Number999 {
public static void main(String[] args) {
for (int i=10;i<=99999 ;i++ )
{
if ((i-bits(i))%9!=0)
{
System.out.println("验证失败");
}
}
}
}
函数重载(overload)
定义:即同一个方法名对多个不同的参数类型进行定义,使一个方法名用 再更多地方。
要求:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
优点:函数名称相同,函数的参数的个数或者类型不同,调用的时候,自动匹配对应的函数
eg:
Person(String name){
this.name = name;
this.age = age;
}
Person(int age, String name){
this.age = age;
this.name = name;
}
函数递归
定义:函数自身调用自身
eg:
public static double sl(double t){
if (t==1 || t==2)
{
return 1;
}
else
{
return sl(t-1)+sl(t-2);
}
}