PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava
作者回复: 介个介个介个……方法签名是个很基础的概念。 接一句郭德纲的话,并不是我讲的多好,全靠你之前的老师的衬托……
作者回复: 套用老郭一句话:不是我教的好啊,全靠同行的衬托。 方法签名(method signature)是标准术语,必学必会啊。你之前跟谁学的,去把学费要回来!
作者回复: 参数类型的顺序前后颠倒过来就是不同的签名 比如说下面两个方法的签名是不同的 void test(int a, String b) void test(String a, int b)
作者回复: ✅,二义性不能有
作者回复: 重载=静态多态。方法名相同,参数类型在静态编译期的类型决定了具体调用的是哪个方法。 我对这个没有什么考虑。有就用,哪天没有了我觉得也基本不耽误我写代码。在我看来,覆盖才是更重要的多态。重载对Java并不重要。
作者回复: ✅
作者回复: 其实Java还是算有点啰嗦的,很多语言更简洁。
作者回复: 这个返回值是自己定义的,需要是什么就是这么。当然这个例子里只是为了演示,不是真正的业务需求。
作者回复: 那个提示不是参数的类型,而是参数的名字。 其实IntelliJ的这个设置还是很合理的,如果实参是一个变量(非literal value),那么大概率它和形参的名字是相似甚至重复的,如果再这么提示,会显得比我还啰嗦。 “实际的开发过程中,方法的参数还是应该以变量传递进来的场景更多吧?” 对,其实不建议使用literal value。而且针对数字型的literal value,还有个专门的名词叫做magic number,就是没人知道这个数字是什么意思。变量名字其实隐含了对这个数字含义的解释,magic number就没有了这层解释。当然,如果用作参数,好在还有形参可以解释一下。
作者回复: :-)