建立编程思想——Java能力升级之路(1)
学习Java已经有一段时间了,作为一门语音的学习者,学会使用是第一步,紧接着就要了解其编程思想,这就是进阶,要达到这个效果是比较有难度的。
自己目前也是一个普普通通的学习者,也是第一次发表这种类型的学习文章,一方面是想要分享下自己学习的一些感悟,另一方面为了督促自己要坚持不懈,一步一个脚印走下去。这些脚印就是目前大家所看到的这些文章了。由于自己很少写技术类的文章,文章不足之处肯定会有,还请大家多多指教。我一定会遵从大家的建议和意见进行改进。也希望这一系列文章能对大家在程序上的学习能更加有进步。也算是体现出这些文章的价值了。
这一系列文章不是对JAVA知识的教程,好的JAVA教程论坛上太多了。大家可以自己去找下,相信得到的结果会更加满意。这一系列文章是希望将自己在编程的所思所想分享给大家,可以看作是我的编程思想的杂文。
我所描述的这些思想当然不能与像《JAVA编程思想》那样这么深刻,但是希望能给初学者一些启示。如果能让初学者了解到编程的精神,我将会非常开心,努力将这一些列文章做好。
不过要真想提高自己的Java技能,国外那些大师的书还是不得不看的。下面我就推介两本比较好的:《EffectiveJava》 和《Java编程思想》。
关于这两本书的介绍我不想多说什么了,毕竟是经典,大家Baidu,Google下就知道了。
作为程序开发着,编程思想我个人认为就是遇到问题后在脑海中形成的一步步解决问题的步骤,我们将这一步一步用程序表示出来,让电脑来执行,并且每一步都非常严谨,哪怕是一丁点疏忽都会造成对问题解答的失败。
这就造成让我们这些程序员不能忽视细节,仔仔细细在斟酌每一行语句。直至思想的完全建立。
其次,编程思想还包括编码的规范性。Java语句对规范性要求就更高了。(纯属个人意见)。我觉得一段代码的优雅性不仅是在其算法和数据结构还应该,在于程序书写的规范,适当的注释等。
当然如果用eclipse作为Java 的IDE,直接Ctrl+shift+F,IDE会自动对代码进行排版 。但是注释是没办法帮你加上去的。
下面我们就从最简单的代码开始进行编程思想的建立:
1. int x = 5;
2. boolean b1 = true;
3. boolean b2 = false;
4.
5. if((x==4) && !b2)
6. System.out.print("1 ");
7. System.out.print("2 ");
9. System.out.print("3 ");
这书写的规范就相当糟糕了。如果问你输出结果是多少,应该会有一部分人会看错吧。其实答案是:2 3;
这里面包含两个小知识点,在不打上{}的情况下,if下面只会影响一条语句,所以第7行的语句不受影响。
所以为了避免这种误解的出现,有些人规定,无论if下面有几行语句,都用{}进行括起来。但是在我看来,其实这样写也减少了代码的简洁性。我更加提倡这种做法,如果if下面只影响一行语句,那么就将这行语句紧接着写在if之后,并且相对if缩进一个tab键的空行,但是后面的语句要空一行再写。例如上面的语句可以改写成:
if((x==4) && !b2)
System.out.print("1");
System.out.print("2 ");
这样的结构看上去也很清晰,并且还省去不必要的{}号。
然后是第二个知识点,就是在java里,任何赋值语句都有一个返回值,返回值即赋值本身的值。这个很少有人会注意到。
就像是 int a = 4; 这简单的一行代码,在执行完之后会返回一个值,这个值就是所赋值的本身,即4.
所以在我们编译并运行下面代码时:
int a;
System.out.println(a= 5);
就会在控制台输出5;
但是像上述代码那样:if((b2=true) && b1) 是我极力不推荐的。因为b2本身就是一个boolean变量,放在if()语句里可以判断真假,为何还多此一举对其进行复值?
所以我认为对于任何boolean变量,例如
booleanb;
在if或者while里的存在形式要么是 b ,要么是!b,不要存在第三种情况。
上面的代码足够简单,基本上每一个初学者都能很轻松的书写下来,但是书写下来是一回事,但是更深刻的了解他们又是另一回事了。
这也是编程的一个难点:深度思考,把握细节。