2.7-Java语言基础(函数)

函数的定义

函数的特点

函数的应用

函数的重载

2.7.1  函数的定义
什么是函数?
• 函数就是定义在类中的具有特定功能的一段独立小程序。
• 函数也称为方法。


函数的格式:
• 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。


class FunctionDemo
{
	public static void main(String[] args) 
	{
//		int a = 3;
//		int b = 4;
//		int c;
//		c = a+b;
//
//		c = 5+7;
//		c = 9+8;
		

//		int c = add(3);
//		System.out.println("c="+c);

//		System.out.println("hello world");
//		myPrint();
//		myPrint();

	}
	/*
	定义函数的格式:

	修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)
	{
			执行语句;
			return 返回值;
	}



	特殊情况:
	功能没有具体的返回值。

	这时return的后面直接用分号结束。
	返回值类型怎么体现呢?因为没有具体值,所以不可以写具体的数据类型。
	在java中只能用一个关键字来表示这种情况。关键字是:void.

	总结:没有具体返回值时,返回值类型用void来表示。

	注意:如果返回值类型是void,那么函数中的return语句可以省略不写。


	*/
	
	public static void myPrint()
	{
		System.out.println("hello java");
		return ;
	}



	public static int add(int a,int b)
	{
		return a+b;
	}

}


2.7.2  函数的特点
定义函数可以将功能代码进行封装
便于对该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。

注意:
•  函数中只能调用函数,不可以在函数内部定义函数。
•  定义函数时,函数的结果应该返回给调用者,交由调用者处理。

class FunctionDemo2 
{
	public static void main(String[] args) 
	{		

//		myPrint();
		int x = add(3,5);//绞肉机
		System.out.println("x="+x);
//		System.out.println(add(3,5));
	}
	/*
	public static void add(int a,int b)
	{
		System.out.println(a+b);
		return;
	}
	*/

	
	public static int add(int a,int b)
	{
		return a+b;
	}
	/**/


	public static void myPrint()
	{
		System.out.println("Hello World!");
	}
}


2.7.3  函数的应用
两个明确
•  明确要定义的功能最后的结果是什么?
•  明确在定义该功能的过程中,是否需要未知内容参与运算


示例:
•  需求:定义一个功能,可以实现两个整数的加法运算。
•  分析:
•  该功能的运算结果是什么?两个数的和,也是一个整数(int)
•  在实现该功能的过程中是否有未知内容参与运算?加数和被加数是不确定的。(两个参数int,int)
•  代码:

int getSum(int x,int y)
{
return x+y;
}

class FunctionDemo3 
{
	public static void main(String[] args) 
	{
//		draw(4,6);
//		draw(7,9);
//		print99();	

		System.out.println("hello");
		
	}

	/*
	需求1: 定义一个功能,完成两个整数的和的获取。
	思路:既然定义功能,就是可以用函数来体现。
		如何定义一个函数呢?
		通过两个明确来完成。
	明确一:这个功能的结果是什么?
		是和。是功能的结果,所以该功能的返回值类型是int 。
		其实就是在明确函数的返回值类型。

			
	明确二:这个功能实现过程中是否需要未知内容参与运算?
		有,加数和被加数。这就是函数的参数列表(参数的个数,参数的类型)
		其实就是在明确参数列表。

	注意:返回值类型和参数类型没有直接关系。

	*/
	public static int add(int a,int b)
	{
		int sum = a+b;
		return sum;
	}

	/*
	需求2: 定义一个功能,画一个矩形在控制台。
	明确一:这个功能的结果是什么?
		没有结果,因为直接打印到了,控制台,并未返回给调用者。
		用void表示。
	明确二:这个功能实现过程中是否需要未知内容参与运算?
		有,行和列不确定。两个。整数 int.
	*/
	public static void draw(int row,int col)
	{
		for (int x=1; x<=row ;x++ )
		{
			for (int y=1;y<=col ; y++ )
			{
				System.out.print("*");
			}
			System.out.println();
		}
//		return ;//可以省略不写。
	}


	/*
	需求3: 定义一个功能,比较两个数是否相等。
	明确一:这个功能的结果是什么?
			有,boolean.
	明确二:这个功能实现过程中是否需要未知内容参与运算?
			有,两个整数。

	*/
	public static boolean equals(int a,int b)
	{
		/*
		if(a==b)
			return true;
		else
			return false;


		boolean x ;
		if(a==b)
			x = true;
		else
			x = false;
		return x;

		*/
//		return (a==b)?true:false;

		return a==b;
		
	}

	/*
	需求1: 定义一个功能,获取两个整数中较大的那个数。
	明确一:这个功能的结果是什么?
			有,其中一个数。 int
	明确二:这个功能实现过程中是否需要未知内容参与运算?
			有,参与比较的两个整数 int
	*/
	public static int getMax(int a,int b)
	{
		/*
		if(a>b)
			return a;
		else
			return b;
		*/

		return a>b?a:b;
	}

	/*
	定义功能,打印99乘法表。

	*/

	public static void print99()
	{
		for(int x=1; x<=9; x++)
		{
			for(int y=1; y<=x; y++)
			{
				System.out.print(y+"*"+x+"="+y*x+"\t");
			}
			System.out.println();
		}
	}

	/*
	根据考试成绩获取学生分数对应的等级
	90~100		A
	80~89		B
	70~79		C
	60~69		D
	60以下		E

	结果:等级,字符,char
	参数:分数 ,int.
	*/

	public static char getLevel(int num)
	{
		char level ;
		if(num>=90 && num<=100)
			level = 'A';
		else if(num>=80 && num<=89)
			level =  'B';
		else if(num>=70 && num<=79)
			level =  'C';
		else if(num>=60 && num<=69)
			level =  'D';
		else 
			level =  'E';

		return level;
	}


}


2.7.4  函数的重载(overload)

重载的概念
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
重载的特点:
与返回值类型无关,只看参数列表。
重载的好处:
方便于阅读,优化了程序设计。
重载示例:
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}

/*
需求:函数的重载。 
*/

class FunctionDemo4 
{
	public static void main(String[] args) 
	{
//		add(4,6,9);
//		System.out.println("Hello World!");
		printCFB(7);
	}

	/*
	函数的重载。

	1,同一个类,
	2,同名。
	3,参数个数不同。or 参数类型不同。
	4,函数重载和返回值类型无关。
	5,java是严谨性语言,如果函数出现的调用的不确定性,会编译失败。


	*/

	//加法运算。两个整数的和。
	public static int add(int a,int b)
	{
		return a+b;
	}
	

	//加法运算。两个小数的和。
	public static double add(double a,double b)
	{
		return a+b;
	}

	//加法运算,三个整数的和。 
	public static int add(int a,int b,int c)
	{
		return add(a,b)+c;
	}


	/*
	打印乘法表。
	*/
	public static void printCFB(int num)
	{
		for(int x=1; x<=num; x++)
		{
			for(int y=1; y<=x; y++)
			{
				System.out.print(y+"*"+x+"="+y*x+"\t");
			}
			System.out.println();
		}
	}

	/*
	打印标准乘法表。
	*/
	public static void printCFB()
	{
		printCFB(9);
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值