JAVA-初步认识-第四章-函数-细节-错误格式\定义思想错误
一.
从函数的功能三来看,(无输入,无输出),当很多次输出时,我们将其功能函数化,可以提高代码的复用性。
当一句代码重复使用两次以上时,就要考虑提高复用性。
二. 函数的好处
注解: 函数结果返回调用者,交由调用者处理。这点尤为重要,这是一个规范,不是规则,但是要尽可能的这么做。
重点:封装+复用
函数的级别是同一级别的,在类中地位相同。
注意:返回调用是重点,没看懂
注解:这个是属于有输入,无返回值么? 将值放在了执行语句中。
封装的时候,功能个数有限制。加法是个功能,输出也是个功能。应该封装一个功能。
这里为什么会有void关键字,这不是有返回值么?→错了,这不是返回值,这是加法+输出的功能化函数。核心在输出上,所以用void的来作为add的关键字,而不是数值型关键字。而且这不是返回值,这是输出值,在调用时,add前面没有任何关键字,修饰符(void对应的是System.out.println)。万不得已不要做这么多的功能。同时,在主函数写的是add(3, 5)没有将其进行赋值。
上面说的都是注意的第二项。因此,在调用函数的时候,输出就由程序自己操作,而不是在调用函数里直接操作完了。
输出语句里面要么什么都不写,要么里面就是具体的数值。这里add(3, 5)调用是没有结果的。
思想误区主要是两个:多个功能封装;输出语句里的无返回值。
针对思想误区做一个了解,如下
这是一个多功能封装的问题,我觉着不要多功能封装就在于,可以将封装的函数的使用范围扩大。如果程序调用的是加法和其他的组合,那么定义的这个函数就废了。
这个就是将无返回值的给了输出语句,也是个错误。这个错误其实有点不懂?void修饰的不是一个返回值,和输出语句对自己括号里的要求相冲突?
主函数里的输出想要成立,必须保证调用的功能函数有结果,但是这里定义的功能函数是没有结果的。
补充:
你可以把一个方法想想成一个黑盒子,不知道里面的具体业务实现方式。你想通过该方法得到什么类型的值就在前面写什么类型,在方法内部return什么类型。如果这个方法你觉得没有必要返回值,就写void了。
总结:如果我的理解没错的话,三种情况已经完全展现出来了。有输入,有返回值这个是没有问题的;有输入,无返回值是在多功能封装里出现了,将加法和输出函数化;无输入,无返回值对应的就是myprint的例子。