首先啰嗦两句,在其他语言中方法称为过程(无返回值)或函数(有返回值)。Java中main方法是由Java虚拟机调用的,其方法头永远都是public static void main(String[]args)。另外,理解相关概念:方法头、方法体、修饰符、方法名、方法签名、参数列表、形式参数。
方法的抽象和逐步求精:方法抽象是指将方法的使用和它的实现分离。逐步求精就是分治的思想,将大问题分解成子问题,子问题有分解为更小、更容易处理的问题。讲文字太过理论枯燥,下面以一道编程题目展开阐述。
示例:假设编写一个程序,显示给定的年月和日历。程序提示用户输入年份和月份,然后显示该月的整个日历,运行效果如右图所示:
你会立即开始编写代码吗?一个好的程序员应该学会程序设计前期的自顶向下的思维培养,应该先用方法抽象把细节与设计分离,只有在最后才实现这些细节。
如上例子,可以先拆分为两个子问题:读入用户输入和打印该年、月的日历。分解之后首先考虑的问题是还能分解成更小更简单的问题吗,而不是考虑用什么方法来读入和打印整个日历。可以画一个结构图来帮助思考。
打印给定月份的日历问题可以分解成两个子问题:打印日历的标题(由年月、虚线、每周七天的星期名称)和日历的主体(第一天是周几、该月有几天、如何控制天数循环显示)。
再继续往下分解,怎样知道某月第一天是周几呢?1)可以用最经典的泽勒一致性公式去求解(该方法在Java基本功练习二中介绍了,可以去参看);2)还有种办法