java基础要点(2)函数


 为了提高代码的复用性,对代码进行抽取
 将这个部分定义成一个独立的功能,方便日后使用
 java中对功能的定义是通过函数的形式来体现的。
 1、先明确函数定义的格式
 
 修饰符  返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2)
 {
  执行语句;
  return 返回值;
 }

 当函数运算后,没有具体的返回值时,这是返回值类型用一个特殊的关键字来标识。

class FunctionDemo
{
	public static void main(String[] args)
	{
		System.out.println(getResult(5));
		
		getResult1(5);
	}
	static int getResult(int x)
	{
		return x*5+3;
	}
	static void getResult1(int x)
	{
		System.out.println("x*5+3="+(x*5+3));
		return;//可以省略
	
	}
}

class FunctionDemo2
{
	public static void main(String[] args)
	{
		int sum=getSum(12,23);
		System.out.println("sum="+sum);
	}

  

 如何定义一个函数呢?
 1、既然函数是一个独立的功能,那么该功能的运算结果是什么先明确
  因为这是在明确函数的返回值类型。
 2、再明确在定义该功能的过程中是否需要未知的内容参与运算。
  因为是在明确函数的参数列表(参数的类型和个数)。

需求:定义一个功能,完成3+2的运算,并将结果返回给调用者。
 1、明确功能的结果:是一个整数的和。
 2、在实现该功能的过程中是否有未知内容参与运算,没有。
 其实这两个功能就是在明确函数的定义。
 1、是在明确函数的返回值类型
 2、明确函数的参数列表(参数的类型和参数的个数)
 
 public static int getSum()
 {
  return 3+2;
 }

 以上这个函数的功能,结果是固定的,毫无扩展性而言。
 为了方便用户需求,由用户来制定加数和被加数,这样,功能才有意义。
 思路:
 1、功能结果是一个和,返回值类型是int
 2、有未知内容参与运算,有两个
  这两个未知内容的类型都是int 

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

 需求:判断两个数是否相同
 思路:
 1、明确功能的结果:结果是:boolean
 2、功能是否有未知内容参与运算
  有,两个整数

	public static boolean compare(int a,int b)
	{
	 /*if (a==b)
	 {
		 return true;
	 }
	 else
		 return false;
	*/
	// return (a==b)?true:false;
		
		return a==b;
	}
}

class FunctionTest
{
	public static void main(String[] args)
	{
		draw(5,9);
		print99(9);
		
	}

需求:定义一个功能,用于打印矩形

	public static void draw(int row,int col)
	{
		for (int x=0;x<row;x++ )
		{
			for (int y=0;y<col ;y++ )
			{
				System.out.print("*");
			}
			System.out.println();
		}
	}
	public static void print99(int x)
	{
		for (int a=1;a<=x ;a++ )
		{
			for (int b=1;b<=a ;b++ )
			{
				System.out.print(b+"*"+a+"="+(b*a)+"\t");
			}
			System.out.println();
		}
	}
}

什么时候用重载?
当定义的功能相同,但参与运算的未知内容不同,
那么,这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。

class FunctionOverload
{
	public static void main(String[] args)
	{
		add(1,5);
		add(32,23,5);
	}
	public static void add(int x,int y)
	{
		System.out.println(x+"+"+y+"="+(x+y));
	}
	public static void add(int x,int y ,int z)
	{
		System.out.println(x+"+"+y+"+"+z+"="+(x+y+z));
		
	}
}

void show(int a,char b,double c){}//看下面函数是否与该函数重载

a、void show(int x,char y,double z){}//没有,因为和原函数一样

b、int show(int a,double c,char b){}//重载,因为参数类型不同。注意:参数类型的顺序不一样,重载和返回值类型没关系

c、boolean show (int c,char b){}//重载,因为参数个数不同

e、double show(int x,char y,double z)//没有重载,这个函数不可以和给定函数同时存在同一个类中。

 

需求:已知学生成绩以100分为满分,共分5个等级:A,B,C,D,E.
90~100为等级A,80~89为等级B,70~79为等级C,
60~69为等级D,0~59为等级E。
要求定义一个成绩变量,当成绩变化时,可直接知道该成绩对应的等级。
例如:当成绩为100时,该学生的等级时A。

class Demo1
{
	public static void main(String[] args)
	{
		char ch=getLevel(99);
		System.out.println("level="+ch);
	}
	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;
	}
}

class Demo2
{
	public static void main(String[] args)
	{
		show(0);//15
		show(1);//14
	}	
	public static void show(int i)
	{
		switch(i)
		{	
			default:
				i+=2;
			case 1:
				i+=1;
			case 4:
				i+=8;			
			case 2:
				i+=4;
		}
		System.out.println("i="+i);
	}	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值