写在前面的废话:
    本书正在创作中,发表这些节选的目的是想收集广大网友的宝贵意见。
    另外,如果有哪位达人可以帮助本书出版,也请与我联系
    email:[email protected]
    或登陆我的网站:www.designersky.com
----------------------------------------------------------------------------第一章 Java语言概述
终于要开始《Java编程基础》这门课了,从学生的眼中可以看到一种期待,但我觉得学生们都有一种误解,觉得这门课学好了就是学好Java了,对二年的J2EE学习会产生决定性的影响。可是实际上,这门课就像它的名字一样,只是一个基础,它的目的就是能让大家掌握Java的基本语法,能够使用Java语言来实现面向对象而已,从对J2EE学习的影响性来说,我觉得这门课的地位还不如《ASP网络编程》。
当然我并不是想说Java基础不重要,只是没有重要到需要放弃毕业设计来听这门课(是的,有几个学生已经准备这么干了)。
翻了一下这本书的目录,发现它可以分为两个阶段——第一阶段:使用Java语法来实现面向对象,面向对象的基本概念在C++课程里面已经介绍了,我想这部分的进行会相对容易,当然了,需要给学生们指出Java和C++在实现面向对象上的区别;第二阶段:使用Java进行图形编程,简单说,用Java来实现VB那一套东西,不知道学生们用惯了VB的可视化编程,能不能适应手工生成界面。
就这些内容可能有些单薄吧,我在想,中心还专门为Java增加了3节理论课,这样算下来会有14节课来介绍Java。嗯……可以用增加的理论课来介绍设计模式(Design Pattern)!这应该是个好主意,能让学生们学到更专业的开发知识,不过对于他们来说会不会太难呢?随着课程进行看吧,反正我也不准备把23种设计模式都讲一遍。
 
我制定的Java授课计划好了,开始上课了,课前大鹏问我Java难不难,引用一句古文“人之为学有难易乎,为之,则难者亦易矣”。
从头讲起,Java的历史、发明者……这些东西我最讨厌,一笔代过。开始介绍Java的几个基本特点:
简单:没有的指针操作;
健壮性:无须手工管理内存;
可移植性:地球人都知道Java是跨平台的。
就说这么多吧,关于Java高性能这部分实在不想多讲,搞过Java开发的人都知道Java也许不是世界上最好的语言,但绝对是运行速度最慢的语言。
重点要说一下Java虚拟机(JVM),它是保证Java语言能跨平台运行的关键。想象联合国开大会的例子,来自中国,美国,法国,德国的一大群发言人准备说话了,为了保证其他人也能听得懂,需要一个翻译团,对翻译团中每个团员的要求就是至少懂得英语和另一门语言。现在中国的发言人说话了,懂英语和汉语的翻译会首先将中文翻译成英文,然后不同语种的翻译再根据英文翻译成各自的文字。如果联合国增加了一个成员“土拨国”,他们讲“土拨语”,那很简单,增加一名会说“土拨语”和英语的翻译就可以了。
这也就是Java虚拟机的运行模式,我们都知道写好源代码以后要进行编译,传统语言(VB, VC)都会直接将源代码编译成能在某固定操作系统下运行的EXE程序(我们都知道windows程序不能在Dos下运行),而Java则是将源代码编译成我们称之为“字节码”的中间文件(我们例子中的英语),OK,就到此为止了。显然这个中间文件是无法直接执行的,现在Java虚拟机登场了,我们执行一个中间文件的流程是:Java虚拟机将中间文件读入,翻译成能在本操作系统下运行的文件,然后执行之。假如现在我们新增一个操作系统,名为“土拨系统2005”(Turbo System 2005),如果想让我们的Java在上面跑起来,只需要sun公司开发一个在“土拨系统2005”下运行的Java虚拟机就可以了(Java Virtual Machine for Turbo System 2005)。
讲到这儿发现一些学生已面露迷茫之色,赶快讲些容易的,从刚才的描述可知,我们开发Java程序需要先编写源代码(*.java文件),然后将源代码编译成中间文件(*.class文件),最后通过Java虚拟机执行,对应这个过程,我们需要三种武器:编辑器、编译器和Java运行环境。
编辑器的目的是让我们方便的开发源代码,好的编辑器支持语法高亮显示,输入“.”出现成员列表等功能,当前企业开发中最常用的编辑器应该是Borland公司的 JBuilder,最新版本2005版;还有现在最热门的开源项目( 搜索互联网,了解开源项目) Eclipse,最新版本3.0;不过作为入门,我让学生们先用 JCreator 3.5,注意,它的3.1版本在显示中文时有问题。 
编译器包含在JDK(Java Develop Kits)中,它将源代码转换成中间文件,在sun公司的官方网站上,可以找到JDK1.4.2版和JDK1.5版,其中1.5版是最新的,里面还附带了一个叫NetBeans的编辑器,但是速度很慢,我推荐学生下载JDK1.4.2版,如果英文基础好的话,还可以同时下载JavaDoc,里面有java的帮助,有点像MSDN,只不过是纯英文的。
Java运行环境JRE(Java Runtime Environment)中最重要的组成部分就是Java虚拟机,它也已经包含在JDK中了,然而,如果我们想确保Java程序能在别人的机器上运行,对方至少应该安装一个JRE。
最后讲讲配置问题,我建议学生先安装JDK,再安装编辑器,这样可以省去很多配置的麻烦。从书上得知要运行Java程序还需要配置三个系统参数:Path,ClassPath和Java_Hone,它们指明了JDK的安装为之;实际上,除非你想在DOS环境下手工编译程序,否则你根本不需要它们,因为编辑器是会自己寻找JDK安装位置的,像JBuilder甚至还自带了一个JDK。
呼~~长舒一口气,休息一下吧,口干舌燥了。
第二节课我先介绍了一下当今Java比较流行的三个分支,这些名词你肯定听过:J2SE,J2EE和J2ME。
1. J2SE (Java 2 Platform,Standard Edition)
指Java 1.2版以上的标准开发包
开发J2SE程序需要的编译器为JDK,编辑器有记事本,JCreator, JBuilder (Borland), Eclipse (OpenSource), NetBeans(SUN), Visual Age For Java(IBM)等
如果要运行J2SE程序,需要安装JRE (Java Runtime Environment)
2. J2EE (Java 2 Platform,Enterprise Edition)
Java2企业版由Jsp + Servlet + JavaBean + EJB组成
运行企业版程序需要J2EE容器,比如WebLogic, WebSphere等
3. J2ME (Java 2 Platform,Micro Edition)
专门运行在移动设备和无限设备上的Java,手机游戏很多用此开发
好了,介绍部分就这么多吧,我要开始演示Hello World了,学生都很奇怪,为什么Java的源文件名要和类名完全一致,哎,记住就行了,管它那么多。大家对main函数的声明叫苦不迭,那么长阿。其实我们仔细分析一下,会发现里面没有一个多余的单词:
public static void main(String args[]) { …… }
public将main声明成公用,当然了,因为main函数是程序的起点,由Java虚拟机自动调用,如果是私有,不就访问不到了嘛;下一个是static,将函数声明称静态,由C++的知识我们知道,只有静态函数可以被直接访问,这也是为了让Java虚拟机能够方便的开始我们的程序;void说明main函数没有返回值,而括号里面的数组表示了命令行参数,在我们还没有图形界面之前,我们几乎只能靠这种方式来接收用户的输入。

解决方案 »

  1.   

    好,我修改一下,如果类是public的,就必须和文件名保持一致,可是为啥阿,我觉得好像没什么道理
      

  2.   

    呵呵,本文只讲Java,不讲青鸟。
      

  3.   

    感谢楼主:
    我也是北大青鸟的学生,这门课程。我们是第一学年第二学期所讲授的最后一本书《JAVA编程基础》学时我们也是14节。十阶段274页(是这批书最对的一本)。
    但是,讲重点:现在我们很多人在怀疑-北大青鸟的“阶段式”授课方法。
    认为有些“哗众取宠”+“速成教程”的感觉。
    不知道楼主的感觉如何???
      

  4.   

    我觉得一般第一节课很可能不讲很具体的东西,现在的问题是很多学生对软件开发里面的各种概念都很模糊。知道,听说过很多名字,新词,但是根本不知道具体是什么,有什么用途,什么时候用,建议楼主先把当前软件开发中应用的语言,技术,新词简单解释等等。为的就是让学生知道他们以后的学习方向,就业方向。当然这些都超出《JAVA编程基础》这个课程的范围,不过对学生有好处。
      

  5.   

    支持楼主,我就在北大青鸟上学,而且正在学java编程基础这本书,而且明天上这本书的最后一课,
    另外问下楼主,是那个北大青鸟的?我在湖北的北大青鸟。
      

  6.   

    我在哪个北大青鸟暂时不太方便说,合适的时候我会在私下公开吧,呵呵。
     apollo333提的建议很好,不过我准备把介绍当前流行技术及其应用的部分放在其它章节讲,呵呵。关于青鸟课程是否“哗众取宠”+“速成教程”,我是青鸟的老师,当然会持反对意见,青鸟三个阶段的课是有内在联系的,至于速成,只要学生努力用功,确实可以在1年半的时间内速成。如果不用功,认为交点钱,天天往教室一座就可以当程序员了,结果只能是幻想破灭。
      

  7.   

    在这里讨论JAVA,就不要说青鸟了,想谈去百度青鸟论坛吧。
       underwind的功力可不是普通的深厚,可以问他很多东西。
      

  8.   

    回复人: Underwind(Underwind) ( ) 信誉:100  2005-04-06 19:47:00  得分: 0  
     
     
       好,我修改一下,如果类是public的,就必须和文件名保持一致,可是为啥阿,我觉得好像没什么道理
      
     
    ---------------------------------------------------------------------------------------
    有道理
    如 A.java
    public class A
    {
    public class B
    {
    }
    }这是完全正确的
      

  9.   

    回复
    如 A.java
    public class A
    {
    public class B
    {
    }
    }这是完全正确的呵呵,没错,你还挺转牛角尖的,不过如果你写成
    public class A
    {
    }
    public class B
    {
    }
    就不行了吧?
      

  10.   

    哈哈!
    回复人: Underwind(Underwind) ( ) 信誉:100  2005-04-06 19:47:00  得分: 0  
     
     
       好,我修改一下,如果类是public的,就必须和文件名保持一致,可是为啥阿,我觉得好像没什么道理
      
     
    ---------------------------------------------------------------------------------------
    有道理
    如 A.java
    public class A
    {
    public class B
    {
    }
    }这是完全正确的
    《java编程思想》中花了很多篇幅讲了关于inner class
      

  11.   

    我并不认为inner class是一种很优秀的解决方案。特别是对于初学者。
      

  12.   

    埃!
    public将main声明成公用,当然了,因为main函数是程序的起点,由Java虚拟机自动调用,如果是私有,不就访问不到了嘛;下一个是static,将函数声明称静态,由C++的知识我们知道,只有静态函数可以被直接访问,这也是为了让Java虚拟机能够方便的开始我们的程序;void说明main函数没有返回值,而括号里面的数组表示了命令行参数,在我们还没有图形界面之前,我们几乎只能靠这种方式来接收用户的输入。
    (解释的真够可以的!)
    呵呵!不说也罢!楼主苦心,天尤可怜!哄一班孩子入睡的却不容易,但哄的好,也是你的本事!
      

  13.   

    搞过Java开发的人都知道Java也许不是世界上最好的语言,但绝对是运行速度最慢的语言。
    -------- ??重点要说一下Java虚拟机(JVM),它是保证Java语言能跨平台运行的关键。想象联合国开大会的例子,来自中国,美国,法国,德国的一大群发言人准备说话了,为了保证其他人也能听得懂,需要一个翻译团,对翻译团中每个团员的要求就是至少懂得英语和另一门语言。现在中国的发言人说话了,懂英语和汉语的翻译会首先将中文翻译成英文,然后不同语种的翻译再根据英文翻译成各自的文字。如果联合国增加了一个成员“土拨国”,他们讲“土拨语”,那很简单,增加一名会说“土拨语”和英语的翻译就可以了。    
    -------- ??好的编辑器支持语法高亮显示,输入“.”出现成员列表等功能
    ------- ^_^从书上得知要运行Java程序还需要配置三个系统参数:Path,ClassPath和Java_Hone,它们指明了JDK的安装为之;实际上,除非你想在DOS环境下手工编译程序,否则你根本不需要它们,因为编辑器是会自己寻找JDK安装位置的,像JBuilder甚至还自带了一个JDK。
    ------- -_-!!!J2EE (Java 2 Platform,Enterprise Edition)
    Java2企业版由Jsp + Servlet + JavaBean + EJB组成
    ------- ^_^
      

  14.   

    就这些内容可能有些单薄吧,我在想,中心还专门为Java增加了3节理论课,这样算下来会有14节课来介绍Java。嗯……可以用增加的理论课来介绍设计模式(Design Pattern)!这应该是个好主意,能让学生们学到更专业的开发知识,不过对于他们来说会不会太难呢?随着课程进行看吧,反正我也不准备把23种设计模式都讲一遍。
    --------
    说实话,我甚至怀疑你能否真正明白并会用其中哪怕10种
      

  15.   

    我承认Java2企业版由Jsp + Servlet + JavaBean + EJB组成这句话不对,应该说
    Java2企业版主要由Jsp + Servlet + JavaBean + EJB组成,呵呵
    好的编辑器支持语法高亮显示,输入“.”出现成员列表等功能
    对于初学者来说,就是这样。
      

  16.   

    cyouyou(甘蓝) ,很感谢你提出的意见,可以看出你的java水平很高。谢谢
      

  17.   

    看的出来 楼上的老师是想把JAVA编程基础讲好
    就北大青鸟的课程安排 不难看出在这本书里面
    讲的就是基础 没有其他的 就前5章看上去就像
    是在看C++ 第6章开始到第10章 个人认为没有什
    么必要性(就业上)在北大青鸟的学生也就是学
    第2学年的课程有用 刚刚在上面有看到说你学习
    了第2学年感觉什么也没有学到要不就没有花时间
    来练习了 我现在刚刚上完JAVA编程基础的书 就
    我的观点来看 6章开始到10章GUI的 就是要提高
    我们学生的兴趣(个人认为)还有 我发现青鸟
    的课程总结性不是很好 老师可以在总结上下点
    功夫 不过你要教好JAVA 必须的看到一个事实
    就是ASP的课程 学生在ASP的动手时间和能力上要
    比JAVA好的多(你不可能带他们用GUI做出VB的效果
    吧!)还有就是11章的线程 在以后也是蛮有用的
    说了这么多 也想给青鸟的学生说下 1 要多动手
    2 要自己总结把学习的东西融会一下你会发现你
    学习了很多了
    就我个人来讲 我在重庆青鸟学的第一阶段就做了
    个朋友公司用的进销方面的软件(目前他们还在用)
    用VB做的(33个窗体 4个报表 SQL SERVER数据库)
      

  18.   

    楼上说的不错,JAVA编程基础就是一个基础,与就业来讲没用,但是不学这个,不可能把2年的东西学好,这应该是是个很浅显的问题。看来楼上学的不错,现在还在重庆的青鸟吗?
      

  19.   

    北大青鸟的学费真的很高
    我在网上看到北京金世纪的好象不错
    http://java.21jsj.com
    没有毕业也没有钱,要不想去学习一下!
    在长沙好象没有专门开设java软工这样的培训机构
      

  20.   

    kao 考!
    北大青鸟的学费高,看看sun的吧!
    学习j2me,学期1个星期!
    课程表自己从sun下载看!
    大约就是2天概念2天动手!
    剩下就是别的概念!
    9k多吧!
      

  21.   

    TO 作  者:  Underwind (Underwind)  我就是一个初学者,但是我常用如下:
    JButton button;.....button.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent ae)
     {
     }
    }
    你能说这个不好?
    不是我喜欢专牛角尖,而是因为你是老师,你不能把一些错误的观念给学生.