java中的函数定义及其使用

函数的定义

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

为什么要定函数呢?

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

函数的格式

修饰符返回值类型函数名(形式参数类型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(int i=1;i<=a;i++)//for循环 控制循环次数
		{
			sum*=i;
		}
		return sum;
	}
}

运行结果:



分析与总结:

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

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

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




  • 27
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
学习Java时做的实验题目的一些答案,可供正在学习Java的莘莘学子们参考一下,应该有你想要的实验的答 案。部分题目如下,可看一下和你们老师布置的实验题目是否一样:编写一个程序输出如下图案。编制applet 程序,绘制一个长120、宽80的红色矩形,并在矩形内部绘制一个兰色内切椭圆。设有一批英文单词存放在一个 数组,编制一个图形界面程序浏览单词。在界面安排一个标签显示单词,另有“上一个”、“下一个”两 个按钮实现单词的前后翻动。编写一个鼠标位置跟踪程序,在鼠标所在位置为心绘制一个红色十字架。编制 一个声音播放控制程序,在Applet面板上安排“播放”和“停止”两个按钮,点击“播放”将播放声音,点击 “停止”可停止播放。另外,Applet启动和离开时将自动播放和停止播放,要播放的声音文件名由Applet参数 提供。有一个南北向的桥,只能容纳一个人,现桥的两边分别有10人和12人,编制一个多线程序让这些人到达 对岸,每个人用一个线程表示,桥为共享资源。在过桥的过程显示谁在过桥及其走向。编写一个可变颜色的 标签,用一个按钮控制颜色的改变与停止。点击按钮颜色停止变化,再点击该按钮颜色又变化。颜色的变化可 用随机数确定。编写一个图片播放程序,图片的文件名为 file01.jpg,file02.jpg,…filen.jpg, 其n由命 令行输入,要求用多线程自动播放。1)设有一个由10个英文单词构成的字符串数组,要求: (1)统计以字母w开头的单词数; (2)统计单词含“or”字符串的单词数; (3)统计长度为3的单词数。 创建一个程序,输出今天的年、月、日。 提示:创建一个java.util.Date类的对象代表当前的系统日期,使用对象的getYear()方法、getMonth()方法、 getDay()方法可获得对应的年月日。编写一个三角形类,能根据3个实数构造三角形对象,如果三个实数不满足 三角形的条件,则自动构造以最小值为边的等边三角形。输入任意三个数,求构造的三角形面积。1) 利用随机 函数定义10对(x,y)值,由此创建的Point类实例存入一个数组,按与原点(0,0)的距离由小到大的顺序输 出所有的点及到原点的距离。 编写一个人与计算机对拿火柴的游戏程序。利用随机函数Math.random()产生火 柴数量(20~50), 每次最多拿3根,拿到最后一根为胜者。 要求:游戏过程要显示火柴总数,选择谁先拿;每步要显示剩余火柴数量,以及计算机拿的数量,并提示用户 输入拿多少;结束时显示谁是胜者。 【解题算法提示】 (1) 产生火柴总数(amount); (2) 决定随先拿(whoplay:1--人, 2--计算机); (3) 定义一个变量保存剩余火柴数量(remain)=amount ; (4) 当remain>0 循环 4.1 根据whoplay的值决定是计算机拿x根还是提示人拿x根;计算机拿时最好带有智能,人拿时要限制输 入数量。 4.2 修改 whoplay的值; 4.3 修改remain的值; (5) 根据whoplay的值决定胜者

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值