第二篇:编程入门
上一次给大家说了环境的配置,这几天又连着上了几次课,大致都是再说一些编程入门的基础知识,把心得跟大家分享一下吧!我再声明一下,我本人的编程水平很是有限, ^_^,所以我说的力图让大家好懂,至于概念我尽量的不去说,因为我怕我说的不准,耽误了大家的学习,至于不对的地方,还请大家多多指出,省得让新人们看了概念混淆!我的文章的目的基本上是扫盲,想让更多的哥哥妹妹们早点的跨入编程的大门,省得天天让那些电脑公司的二道贩子天天一两句变量,函数什么的就给弄的晕头转向!实话实说,国内现在程序员真不少!可是真正有实力的不多,大多一知半解,靠下载个源码(还是asp的源码),修改修改混饭吃(其实大家都只是修改里面的网页)!以致你现在要是跟电脑公司的人打交道,经常会被他们先进的“B-S”程序演示所折服,本人出国以前就常干这个!我用的语言尽量的通俗,目的是让大家明白编程其实扯淡,只要你英语能过四级,高数能到60分以上,那就证明你的智商入个编程的门不成问题。编程就在入门难,只要入了门,那就看你的真本事了,程序实际上只是个工具而已,创造力,想象力,只要你能熟练的驾驭你手中的工具,充分发挥你脑中的智慧!有句话我忘了在哪个帖子上看过来的了,真是十分的经典,这里给大家show show“说到java,不能不提到sun公司里面的中国程序员,保守的估计,java至少有70%是中国人开发的,所以说java是70%的中国制造不足为怪,至于微软的windows,那玩艺可能就是100%的中国制造了!纯粹就属于“国产软件”的范畴!”中国人编出了世界上最贵的软件,同样中国人也编出了世界上免费的,但是最流行的编译器!所以各位,未来就在你们手中了!呵呵……..
完了,我一激动就是300多字的rubbish,目的也只是想让大家跟着我一起激动一下,学任何东西最重要的都是激情.先把大家的激情吊起来,学起来应该也不难. 好了言归正传,今天我就说说编程的基础。
说起程序,不得不提一下,冯-诺依曼结构,甭听我跟你拽个英文的人名,其实这个结构也很简单,就是把计算机上的编程分成两个部分:信息和指令,信息就是我们想要去计算的数据,指令就是我们怎么去计算这些数据。打个比方:我给了你100块人民币,或者我给了你100块美元,让你想办法把它花出去,你去给东南亚海啸捐了100块人民币,或者你去泰国看了100美元的脱衣舞(你小子也真够双重人格的)。这就引出了信息和指令的基本分类,指令分为:顺序,选择,重复。就好比你小子可以捐款,也可以看脱衣舞;信息分为:数字,字符,字符串…..等等。就好比我可以给你人民币,也可以给你美元。
所以别看我们第一次的源程序乱七八糟些了一堆,其实里面就有两种东西,数据和指令,向下面的这个程序片断:
import java.lang.*;public class Lee {public static
void main(String[] args){System.out.print("java is very easy!!!");}
就是我们讲的第一个程序,不过这样看着的确有点不爽,我们稍微改动一下:
import java.lang.*;
public class Lee
{
public static void main(String[] args)
{
System.out.print("java is very easy!!!");
}
}
如果写成这样,就好看的多了,也好懂的多了,所以大家写程序的时候一定要养成良好的习惯,尽量能让别人看清楚自己的些的程序,做到条理,结构,清晰有序。
好了,现在就让我们分析一下我们些的第一个程序(黑粗体的字为程序。):
public class Lee{
public static void main(String args []){
System.out.println("java is very easy!!! ");
}
}
在java里面,方便起见,类的名称我们都有大写的字母开头命名!你自己找找程序里面有哪个可能是类的名字??对了,Lee,String,System,这些个都是可能是类的名字,不过现在方便起见,String 和 System你先不要管,我们就先只来讲讲Lee.(注,这里的Lee是我亲爱的远在国内的表弟的sir name)。
要想讲类,就涉及到面向对象的应用程序的编写了,一听大家就头大了,经常在网站上看别人说面向对象,好像很高深的样子,其实很简单,我对国内的计算机书籍的翻译实在不敢恭维,不能说没有,只能说很少有翻译的好的,我是在不明白用英文写的那些浅显易懂的文章,到了中国一翻译,就实在是高深的让人看不懂了,专业术语一大堆,好像要考我的逻辑思维能力。你去看看sun网站上面的教程(全是免费的!!!),基本上都没有超出高中的词汇,而且理解起来特容易(当然前提是你要高中毕业啊!!),都特别的棒,所以学java还是我重复的老话题,你下个金山词霸2005,然后就到java.sun.com上找教程,你根本就不用看我的文章,因为那上面的讲的比我还简单,还容易理解!好了,又是一大堆废话,我接着说对象,打个比方,程序里面的一个对象你就把它看成是一个人,这个人会某些技能。而对象在java里面就是类,一个类就是一个对象。所以根据上面的例子 Lee 是一个人,这个人在我们编写的程序里只拥有一项技能,因为我们就写了一个技能给它,当然我们还可以赋予他更多的技能,这都是后话!我们就从第一行讲起:
public class Lee{
这一行的意思实说,我们创造了一个类,名字就叫Lee,好比我们创造了一个人,他的名字就叫Lee,public class 的意思是声明一个公共类,什么是公共类?后话,你先死记着,你就记着当你想创造一个类出来,就用public class + 你想要创造的类的名字,而这个名字开头字母最好你大写,这是大家的习惯,当然你不大写也行,不过这都是大家编程总结出来的命名经验,你照着这个规矩来就行了。后面的大括号就表示我们的这个类的身体从这个大括号后面就开始了,这个大括号和最后面的那个大括号是一对的,那个括号的意思不说你也应该明白了,表示着我们的这个类的身体的结束。
下面开始讲身体里面的东西:
public static void main(String args []){
System.out.println("java is very easy!!! ");
}
刚才我说到,对象,也就是java里面的类,应该有某些技能,这些技能我们怎么给这个类呢?我们把他们都写在身体里面。
public static void main(String args []) 这行话的意思我现在还不想解释,这是一个函数的声明,public这个字你已经知道意思了吧,这句话直译就是:公共的 静态的 无值的 主要函数()。你现在要记住的是,这是个所有能够独立运行的类都必须要有的东西,它就相当与一个人的生命状态,有个这个函数,这个类,也就是这个人,就是一个活人,如果我们不用人打比方,我们换用电脑来打比方,那么有了这个函数就好比这个电脑有了电,它自己就能动了。 当然也有的类没有这个函数,就好比是一个死人,一个没有电的电脑,但是这个死人活了以后,这个没有电的电脑通了电以后,也能实现他们所拥有的技能!怎么实现呢?可以用带这个函数的类,也就是说去找个活人,找个有电的电脑去调用这些死人和没有电的电脑!简单的说,有main函数的类可以自己直接运行,没有main函数的类不可以自己直接运行,他们创造出来就是为了给有main函数的类使用的。
现在我们给我们之前创造的类赋予生命,给它同上电,就变成了这样:
public class Lee{
public static void main(String args []){
}
}
因为public static void main(String args []) 函数只是给类通了电,并没有给类赋予特殊的能力,下面我们就给我们通了电的类赋予特殊的能力:
public class Lee{
public static void main(String args []){
System.out.println("java is very easy!!! ");
}
}
我们加上了一行:
System.out.println("java is very easy!!! ");
我们来解释这一行,前面我说到了,System可能是类的名字,其实这是个包的名字!什么又是包呢,这样说吧,打个很形象的比喻:为了方便管理这些个有电的类,没电的类,我们把差不多相同功能的放在一个文件夹里面,这个文件夹就好比是个包,我们又为了方便管理包,就把差不多相同的包归成一类,又放进个文件夹里面,这个装着包的文件夹我们就叫它库!他们的包含关系是这样的:库-(包含)-包-(包含)-类-(包含)-方法,这里的方法就是我们说的技能。(程序里面的一个对象你就把它看成是一个人,这个人会某些技能) 好比下图:
为什么我们知道去用这个类呢?应为这个是jdk提供给我们的可以现成去调用的“死类”,就是我说的那些没有通电的类,System.out.println();的意思就是用System包下面的out子类,out子类下面的println方法。这个方法的作用就是能把你写在System.out.println()括号里面的东西打印在屏幕上。至此,我们的有特殊技能的人已经完全创造完了,这个人有一个特殊的技能,就是能打印一些文字在屏幕上,我把System.out.println("java is very easy!!! ");看作一个操作,一个操作完了以后,我们用个“;”表示这个操作到此结束!关于什么时候有“;”,什么时候没有“;”,以后大家写的程序多了就明白,我就不再说了,越说你们越晕!在库,包和类的中间我们用.格开,就好比用.代替了我前面所打的比喻里面的文件夹。Java给我们提供了非常丰富的类可以去调用,(这也正体现了面向对象的精髓:就是我们尽量不去编代码,我们只学习如何去尽量组织别人为我们编好的现成的可以用的类,我们也可以自己编一些代码,把它写成一个类,下次我们想用相同的功能的时候,不去再重新写代码了,直接调用这个类就ok了,省了很多的功夫!其实面向对象就是教会我们怎么偷懒去用别人现成的东西!!或者自己编个通用的东西,以后想用的时候就可以再用!)这些类什么时候用,什么时候不用,怎么才能知道又这个类?这些都需要我们去查java的API文档,没有人能记住又多少类?那个类是干什么的?我们需要的时候就去查API文档,看这些类在哪个库的哪个包里面,他有哪些特殊的技能我们可以用。关于API文档,就是让我们用来干这些事情的,jdk1。4 的文档在http://java.sun.com/j2se/1.4.2/download.html可以找到看这个链接框就可以了J2SE v 1.4.2 Documentation,关于API文档怎么用!我可能会说,可能不会,总之你把它下载下来,自己慢慢研究!
说了半天你可能对这些java的库啊,包啊,类啊还是不熟悉,不明白,下面就给你个直观的认识:找到你jdk安装的目录,(第一章里面说过的)里面有个src.zip的文件,这个就是jdk的源代码,你应该装的有rar吧,别说没有啊!没有了我也不管了,怎么装你问别人去!
反键单击这个文件,在弹出菜单里选“释放到这里…”你会发现多了几个文件夹在安装目录里,你进入java―――lang看到System.java了吗?这里你会问了,为什么我们只写
System.out.println()没有提供java和lang的信息呢!其实答案很简单,因为java.lang太常用了,所以不用你写了,java默认就引用java.lang里面的东西,就像第一篇我讲到的path环境变量,不用你告诉编译器,编译器自己就跑到/java/lang目录底下去找System了。
好了,第一个程序我们已经详细的讲解完了,你应该对java有个初步的了解了吧。而且面向对象也不像呢想像的那么复杂吧?下次我们就会接触到比较深一点,也是比较无聊的语法问题了!
我的java学习经验谈2
80酷酷网 80kuku.com