定义一个函数,完成一个整数的*3+5的运算
public classFunctionDemo
{public static voidmain(String[] args)
{int x = getResult(4);
System.out.println("x="+x);
}public static int getResult(intnum)
{return num * 3 + 5;
}
}
静态函数只能调用被静态函数。
下图:没有具体的返回值,就不能有返回值类型出现。
没有具体的返回值,返回值类型用void来标识。
函数中不能定义函数
如何定义一个函数呢?
1,先明确函数的返回值类型
2,再明确是否需要未知的内容(明确函数的参数列表(参数的类型和参数的个数)。
返回值为void类型的函数,不可以用输出语句调用。
public classFunctionDemo
{public static voidmain(String[] args)
{
System.out.println(get(4,5)); //返回值为void类型的函数,不可以用输出语句调用。
}public static void get(int a,intb)
{
System.out.println(a+b);return;
}
}
public classFunctionDemo
{public static voidmain(String[] args)
{
}
public static boolean compare(int a,intb)
{
return a==b; //这是最简单的写法,因为==是比较运算符,只有True和false两个结果。
}
}
public classFunctionDemo
{public static voidmain(String[] args)
{
}/*需求:对两个数进行比较。获取较大的数*/
public static int getMax(int a,intb)
{
return (a>b)?a:b;
}
}
函数练习:
//定义一个打印99乘法表功能的函数。
classFunctionTest
{public static voidmain(String[] args)
{
print99();
}public static voidprint99()
{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();
}
}
}
函数重载:
重载的概念:在同一个类中的同名函数,它们的参数个数或者参数类型不同。
重载的特点:与返回值类型无关,只看参数列表。参数是有顺序的。
重载的好处:方便阅读,优化了程序设计。
//返回两个整数的和
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;}
什么时候用重载?
当定义的功能相同,但参与运算的未知内容(参数)不同
那么这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
classFunctionOverload
{public static voidmain(String[] args)
{
add(4,5);
add(4,5,6);}//定义一个加法运算,获取两个整数的和。
public static int add(int x,inty)
{return x+y;
}//定义一个加法,获取三个整数的和。
public static int add(int x,int y,intz)
{return add(x,y)+z;
}
}
提高了代码的复用性:
练习:问,哪个答案和给定函数重载了
void show(int a, char b, double c) {}
void show(int x, char y, double z) {} //不重载,因为和原函数一样。
int show(int a, double c, char b) {} //重载,因为参数类型不同。注意:重载和返回值类型没关系。
相同的函数不允许在同一个类中出现。