黑马程序员—函数应用
class functiondemo2//函数(应用) {public static void main(String[] args) {boolean result=compare(3,3);/* 不是int result=compare(3,3) 因为是boolean类型 返回的必须是boolean(就是 调用的也必须是boolean)*/System.out.println("result "+result); int MAX=GetMax(2,82);System.out.println("MAX="+MAX);System.out.println("Sum="+GetSum(3,4)); //结果为Sum=7}/*我们不断地编写程序代码其实就是不断地去实现功能 而java中的最小功能单元就是函数方法 : 如何定义一个函数呢? 1.既然函数是一个独立的功能 那么该功能的运算结果是什么先得明确 因为这是 在明确函数的返回值类型 2.在明确在定义该功能的过程中是否需要未知的内容参与运算 因为是在明确函数 的参数列表(参数的类型和参数的个数)/*需求1:定义一个功能 完成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;}/*需求2: 判断两个数是否相等思路 : 1.先看要的是什么结果 是判断两个数是否相等 属于布尔型 所以要定义boolean 开始自己用的是int 也像老师老师那样分析了 可就是一带而过 上去就写代码 所以就挂了 而且 if 定义的条件表达式后面不能加; 错误提示是"else 不带有 if"找了半天错误才发现这里 开始怎么也不明白怎么会提示没有if 呢?? 2.接着判断是否有未知的量参与运算 有 所以定义定义参数列表(int x int y) */public static boolean compare(int x,int y){//if (x==y)//不能加;//return true;//不要丢;//else // return false;//不要丢; //可以再继续优化,简化代码,注释else 但是不能注释return false/*还可以继续优化,因为是if else语句 前面讲过三元运算符的问题 因为 这里if定义的就是具体的值 所以可以用三元运算符代替*///return (x==y)?true:false;//必须不能丢return啊!!//还可以继续优化,因为函数本身返回值类型就是boolean,所以可以直接写成:return x==y;//这就是代码的优化}/*需求3:定义功能,对两个数进行比较。获取较大的数。思路:1.获取最大值 运算结果是值 所以返回值类型为int 2.运算过程中有未知量参与 所以要定义参数列表 */public static int GetMax(int x,int y)//需要写2个int 不是1个{/*if (x>y)return x;elsereturn y;*/return(x>y)?x:y;}//注意:如果是没有具体返回值的情况 如public static void Get(int x,int y){System.out.println(x+y);return;}/*这种思想本身就是错的 以后尽量不要写 如果用户只是想比较用GetSum函数得到的两个数的和 不要将两个数都打印出来 只要最后的结果 这样做就是多余了 比如 int x=GetSum(2,6); int y=GetSum(4,9); int Max=GetMax(x,y); 是否打印(显示结果)的决定权在用户(调用者)!不要多余,实际上好多安卓软件都有这个毛病 需 要的功能没有 不需要的一堆这种情况是不能直接在输出中打印 System.out.println(GetMax(3,4));的原因就是他没有具体的返回值 而其他的有具体返回值的是可以的 比如上面的 GetSum 就可以写成System.out.println(GetSum(3,4)); 结果在上面*///注意 函数里面是不能套函数的 写的函数如果包含在主函数里 会报错 提示非法 需要.class}
?