您的位置:首页 > 编程语言 > Java开发

java中的函数定义及其使用

2017-07-16 11:25 567 查看
函数的定义

习惯把函数也叫成方法,都是一个意思;函数是具备特定功能的一段代码块,解决了重复性代码的问题。

为什么要定函数呢?

目的是为了提高程序的复用性和可读性。

函数的格式

修饰符返回值类型函数名(形式参数类型1  参数名1,形式参数类型2  参数名2,形式参数类型3  参数名3......)

{

函数体语句;

return  返回值;

}

(1).修饰符:public 公共的static 静态的

    (2).返回值类型:就是函数所实现的功能结果的数据类型。

    (3).方法名:自己定义,符合标识符命名规则就行;驼峰命名规则 :单个单词首字母小写,多个单词后面的单词首字母大写。

    (4).参数列表:即形式参数列表,用于接收实际参数。

    (5).参数类型:参数的数据类型

    (6).参数名:即变量名

    (7).函数体语句:就是函数要完成的功能

    (8).return:用来结束函数

    (9).返回值:即这个函数的功能的结果 ,由return带回调用地方。

   注意:void 表示不确定返回值类型,不能理解为没有返回值,只是返回值的类型不确定而已;

此外,返回值类型为void时,由于其返回值类型不能确定,故不能定义形式参数变量来接收;

当返回值类型为void时,return可以不写;但是当返回值类型为其他如int  String等时就必须写,否则编译会出错。

自定义一个函数的三步

(1).确定返回值类型

(2).确定方法名

(3).明确参数列表

函数的参数传递

(1).形式参数:函数定义时的参数为形式参数------>简称形参

(2).实际参数:函数调用时的参数为实际参数 ------>简称实参

参数传递:只能有实参传给形参

注意:实参和形参在个数、顺序、类型上都要保持一致.

简单应用举例

例1:编写一个求两个数的和的子函数 要求使用键盘录入的方式:

import java.util.Scanner;//导入键盘录入的类 Scanner
class Demo_1
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);//创建键盘录入类Scanner 的对象
System.out.println("请输入第一个正整数");
int num1=sc.nextInt();//通过对象sc调用Scanner类中的nextInt()方法读取输入的数据并进行存储

System.out.println("请输入第二个正整数");
int num2=sc.nextInt();

int sums=add(num1,num2);//函数调用:定义一个int型的变量来接收和
System.out.println("sums="+sums);

}
public static int add(int a,int b)//求和函数 子函数
{
int sum;
sum=a+b;
return sum;
}
}




运行效果:



例2.编写一个程序,由键盘录入的方式输入三个正整数,求出其中的最大值。

import java.util.Scanner;//导入键盘录入的类 Scanner
class Demo_2
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);//创建键盘录入类Scanner的对象
System.out.println("请输入第一个正整数");
int a1=sc.nextInt();//通过对象sc调用Scanner类的nextInt()方法:读取输入的数据并进行存储

System.out.println("请输入第二个正整数");
int a2=sc.nextInt();

System.out.println("请输入第三个正整数");
int a3=sc.nextInt();

int max=getMax(a1,a2,a3);
System.out.println("max="+max);

}
public static int getMax(int x,int y,int z)//获取三个数中的最大值的函数
{
int max;
max=x>y?x:y;//三元运算符的使用
max=max>z?max:z;
return max;
}
}



例3.编写一个程序,计算出5的阶乘。

class Demo_3
{
public static void main(String[]args)
{
int sums=jiecheng(5);//函数调用
System.out.println("5的阶乘为:"+sums);//打印结果
}
public static int jiecheng(int a)//自定义的求阶乘的函数
{
int sum=1;
for
4000
(int i=1;i<=a;i++)//for循环 控制循环次数
{
sum*=i;
}
return sum;
}
}


运行结果:



分析与总结:

要实现某一功能,把其定义为一个函数封装起来 就可以重复多次使用;这样一来,main函数里的代码减少了

提高了程序可读性等,但应注意自定义的函数应写在main函数之外而class类中------->即自定义的函数写在main函数之外但

和main函数在同一个class类中。需要用到定义的函数时,只需在main函数中进行调用即可。



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息