一、函数的概念
1.什么是函数
幻术就是定义在类中的具有特定功能的一段独立小程序,并能被多次使用。
定义一个功能:
- 应该是一个封闭的区间(需要用大括号将其封装)
- 需要给这个区间起一个名字(用的时候通过这个名字来进行调用)
- 这个区间需要有参与运算的数据
- 需要定义该功能的结果类型(返回值类型)
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();
}
//return;
}
2.函数的定义格式
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)
{
执行语句;
return 返回值;//return关键字是用于结束该功能。并将后面的具结果返回给调用者。
//必须有return语句。
}
void表示没有返回值的情况
定义函数清楚两个部分:
- 函数的运行结果是什么(就是明确函数的返回值)
- 函数有没有位置的参数(就是明确参数列表)
3.函数内存的加载
class MethodDemo
{
public static void main(String[] args)
int a = 3;
int b = 4;
int sum = getSum(a,b);
System.out.println("sum="+sum);
}
public static int getSum(int a , int b)
{
return a + b;
}
}
- 首先会加载main方法加载进栈内存中,并执行main方法中的代码,分别给a变量开辟空间并存放3,给b变量开辟空间存放4。
- 当程序执行到 int sum = getSum(a,b)时;会将getSum函数加载进栈内存中,同样在getSum所属的栈区域中开辟a和b变量空间,接受main方法中的getSum(a,b)传递的值。
- 然后执行getSum函数中的代码,当getSum函数执行结束后,函数会出栈(弹栈)。
- 程序回到main方法的调用语句int sum = getSum(a,b);处,并将getSum方法执行完返回的结果赋值给sum变量,程序继续往下执行。打印sum的值。
//计算1-N(包含N)之间的所有能被3和7整除数之和
public class Demo08 {
public static void main(String[] args) {
int add = show(100);
}
public static int show(int n){
int sum = 0;
for(int i = 1;i<=n;i++){
if((i%3==0)&(i%7==0)){
sum+=i;
}
}
System.out.println(sum);
return sum;
}
}
4.函数的重载(名同参不同)
4.1 重载的概念
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同就可以,这就函数(方法)的重载。重载和返回值类型无关。