java编程思想越看越懵逼了,是不是这本书适
(以下全部为我个人想法,不代表大众)
Java语言是我见过的最严谨的语言,也是最简单明了的语言(Java8新特性……除外,其实是我还不会用)
因为电脑不是人,所以它不会猜出你接下来要做什么,换句话说,永远都是你在告诉程序该做什么,如果你不说,它就很可能和你预想的不一样。而所谓的编程思想的核心,只有三点,一是指令在何处发出,二是发出什么指令,三是指令是否正确。
指令在何处发出:在一个类的内部,只需要定义它所需要实现的方法,在一个非抽象方法的内部,只要去想它该如何实现,就足够了(其他不要多想)比方说我定义一个类“人类”,我决定让他走起来,那么我就写“走动”这个方法,这个方法只管“走动”,不要去想什么不能闯红灯了不能撞墙了之类的问题,那是其他的方法该做的,跟这个方法无关。详细一点,在人类世界,如果一个人走着走着出现了这种情况,那么他只是应当停止走动,也就是【结束方法】,而该不该结束,不是腿该决定的,而是大脑;如果这个人脑残,他可能撞上墙也不会停下来,一直这么撞下去。总的来说,对于一个方法,判断它是否应该执行,不在这个方法体自己的内部。但是,在方法体内部要判断的是:它自己能否执行,如果不能,则不执行(或部分不执行)并抛出异常。对于脑残,他的大脑由于没有正确捕获这个异常,所以他继续撞墙。
发出什么指令:对于Java程序员来说这一点稍微想想就能想出来。思考这个问题的关键就在于,你想让你的程序是什么样。你已经写好了几个类,并且封装完善,下一步就是如何把它们拼凑到一起。编程的艺术就在此!对于文科生而言就像是写作文的大纲,对于理科生而言就像是在解题,现在唯一该动的,是你的大脑。如果程序太过复杂,建议你先把思路缕清,最好用笔纸记下来,方便修改,或者写到注释里面方便阅读。思路不清晰的程序员是写不出好程序的。
指令是否正确:
与其说是指令是否正确,不如说是指令是否明确。这一步就是解决你写好的程序在运行时出现的问题了。没有人能够一次性做好一个完整的项目,就算换了下辈子的桃花运做到了,也一定会亲自上机测试。而纯Java程序(我是指没有本地命令和本地方法的程序)出现的bug可谓是少之又少,所以一旦出现,你就需要考虑你的设计是否完善或是否正确。Java里面易混淆的语句还是有不少的,比如下面这段代码:
String a = "abc";
String b = new String("abc");
String c = "abc";
String d = new String("abc");
System.out.println(a == b); // false
System.out.println(a == c); // true
System.out.println(b == d); // false
System.out.println(a.equals(b)); // true
在人类看来这些值都应当是true,但在我们电脑看来(……好像哪里不对?=.=)这就是有严格的判断方式的。再比如:
int a = 5;
int b = a++ + ++a;
上面这个代码我估计随便哪个正常人看了都会吓一跳……就算是有几十年编程经验的专业程序员,让他去写这种代码,那百分之三百不可能的。这样的代码对于虚拟机来说指令明确,但对于你来说呢?如果运行时就是因为这个部分没有达到预期效果,该从何处下手呢?所以在写代码的时候,一定要条理清晰,切忌为节省行数牺牲可读性,包括注释,为了给你自己排除故障,也为了一起合作的其他程序员在读你的代码的时候能明白你在做什么。