黑马程序员_毕向东_Java基础视频教程——器函数(概述)(随笔)
函数(概述)
java中最小的功能单位是函数
函数的定义(什么是函数)
- 函数就是定义【在类中的】【具有特定功能的】【一段独立小程序】
- 函数也称为方法
函数格式:
修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2, ...)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值
return:用于结束函数
返回值:该值会返回给调用者
class FunctionDemo //17/5/2020
{
// 修饰符 返回值类型 函数名 参数类型 形式参数
public static int getResult (int num)
{
return num * 3 + 5;
}
public static void main(String[] args)
{
/*
int x = 4;
System.out.println(x*3+5);
x=6;
System.out.println(x*3+5);
*/
// int x = 4*3+5;
// int y = 6*3+5;
int x = getResult(4);
int y = getResult(6);
System.out.println("x = "+x);
System.out.println("y = "+y);
}
//发现以上的运算,因为获取不同数据的运算结果,代码出现了重复。
//为了提高代码的复用性,对代码进行抽取。
//将这个部分定义成一个独立的功能,方便日后使用
//Java中对功能的定义通过函数的形式来体现的
//需要定义一个功能,完成一个整数的 *3+5 的运算,并打印结果。
//1、先明确函数定义的格式
/*
修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2, ...)
{
执行语句;
return 返回值;
}
*/
}
函数的特点
-
定义函数可以将功能代码进行封装
-
便于对该功能进行复用
-
函数只有被调用才会被执行
-
函数的出现提高了代码的复用性
-
对于函数没有具体返回值的情况,返回值类型用关键字 void 表示,那么该函数中的 return 语句如果在最后一行可以省略不写
class FunctionDemo { public static int getResult (int num) { return num * 3 + 5; } public static void main(String[] args) { int x = getResult(4); System.out.println("x ="+x); } }
-
【注意】
- 函数中只能调用函数,不可以在函数内部定义函数
- 定义函数时,函数的结果应该返回给调用者,交由调用者处理
函数的应用
-
两个明确
- 明确要定义的功能最后的结果是什么?
- 明确在定义该功能的过程中,是否需要知道未知内容参与运算
-
示例:
-
需求:定义一个功能,可以实现两个整数的加法运算
-
分析:
-
该功能的运算结果是什么?两个数的和,也是一个整数 (int)
-
在实现该功能的过程中是否有未知内容参与运算?加数和被加数是不确定的。(两个参数, int)
-
代码:
int getSum(int x, inty) { return x+y; }
class FunctionDemo2 { public static void main(String[] args) { int sum = getSum(4,6); System.out.println(); System.out.println("4+6 = "+ sum); sum = getSum(11,3); System.out.println("11+3 = "+ sum); } /* 如何定义一个函数呢? 1、既然函数是一个独立的功能,那么该功能的运算结果是什么先明确 因为这是在明确函数的返回值类型 2、再明确在定义该功能的过程中是否需要未知的内容参与运算。 因为是在明确函数的参数列表(参数的类型和参数的个数) */ //需求:定义一个功能完成 3 + 4 的运算,并将结果返回给调用者 /* 1、明确功能的结果:是一个整数的和 2、在实现该功能的过程中,是否有未知内容参与运算,没有。 其实这两个功能就是在明确函数的定义 1、是在明确函数的返回值类型 2、明确函数的参数列表(参数的类型和参数的个数) */ /*public static int getSum() { return 3+4; } */ /* 以上这个函数的功能结果是固定的,毫无扩展性而言。 为了方便用户需求,由用户来指定加数和被加数。这样,功能才有意义 思路: 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; } /* 需求:定义功能,对两个数进行比较。获取较大的数 */ public static int getMax(int x, int y) { /* if(x>y) return x; else return y; */ return (x>y)?x:y; } }
函数在编写过程中出现的小问题
class FunctionDemo2 { public static void main(String[] args) { int sum = getSum(4,6); System.out.println(); System.out.println("4+6 = "+ sum); sum = getSum(11,3); System.out.println("11+3 = "+ sum); } }
-
-