可以通过名字被反复的使用.
2. 函数的使用流程:[开发应用重点]
① 函数的定义:
函数的声明:约定函数的功能(函数起名字).
函数的实现:实现函数的功能.
a.位置:类以内,与main函数并列的位置.
b.语法:
public static 返回值类型 函数名(形参列表){
//函数的实现
}
函数的返回值类型/函数名/形参列表称为函数的三要素.
c.函数名:遵循标示符命名规范(驼峰命名法/望文生义)
d.参数: (数据类型 变量名,数据类型 变量名2)
----->称为形式参数(形参)
---->参数列表(参数的个数:0~n个)
I. 参数相当于函数内部的局部变量,在函数内部可以通过参数名
直接使用.(参数只能在函数内部使用)
e. 函数的返回值类型:
I. void:代表函数没有返回值(函数不需要给调用者返回任何的数据)
即没有 return XXX;语句
II. 8种基本数据类型/对象类型:代表函数有返回值语句
即函数必须有return XXX;语句.
return 的小结:
① 作用:
1. 将实际的数据返回给调用者
2. 结束当前函数
② 一个函数最多有一个return语句.
③ 如果return语句用在分支结构中,必须保证
每一个分支都有return语句.
④ return结束当前函数,所以retun语句后面不允许
写任何语句,否则编译报错(错误信息:无法访问的语句)
⑤ 如果函数的返回值类型是void类型,可以利用 return;
结束当前函数.
② 函数的使用:
使用特定功能的时候,通过函数的名字直接使用称为函数的调用.
a. 函数的调用:函数名();
b. 带参数的调用: 函数名(实际的数据,实际数据2);
--->实际参数(实参)
I.实参作用:将实际参数的数据传递形式参数
(给形参赋值)
II. 注意:实际参数的个数/顺序/类型必须和形式参数完全一致.
c. 带有返回值的函数调用:
数据类型 变量名=函数名(实际参数);//存储函数的返回值
注意:数据类型取决于函数的返回值类型.
3. 函数的作用:
① 提高代码的可维护性
② 提高代码的重用性
③ 减少代码的冗余
④ 提高程序的结构化,利用分工.
4. 函数的嵌套调用:[理解]
① 概念:一个被调函数的内部,又调用其他函数.
② 执行原理:函数被调用时,优先跳到被调函数内部,执行其功能代码,结束后,
如果有返回值带着结果返回值到调用位置,继续执行被调位置后面的
内容.
public class DemoHanshuqiantao {
/**
*
* 一元二次方程
*/
public static void jieDa(double a, double b, double c) {
//判断b平方减4ac是否大于0即是否有解
if (zhengJie(a, b, c)) {
double dianTa = b * b - 4 * a * c;
double x1 = (-b + Math.sqrt(dianTa)) / 2 * a;
double x2 = (-b - Math.sqrt(dianTa)) / 2 * a;
System.out.println("x1=" + x1 + " " + "x2=" + x2);
} else {
System.out.println("此方程无解");
}
}
public static boolean zhengJie(double a, double b, double c) {
double dianTa = b * b - 4 * a * c;
if (dianTa > 0) {
return true;
} else {
return false;
}
}
public static void main(String[] args) {
jieDa(1, 10, 1);
}
}
① 概念:在一个函数的内部,调用该函数自身.
② 注意:需要给递归设置出口,避免无穷递归.
public class Demodiguidiaoyong {
/**
* 递归调用函数
* 收敛条件
* 以阶乘为例12
*/
public static double diGui(int n){
if(n==1){
return 1;
}
double result =n*diGui(n-1);
return result;
}
public static void main(String[] args) {
double d=diGui(12);
System.out.println(d);
}
}