Java入门(4) 第一个Java程序

2016-02-19 13:10 18 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享Java入门(4) 第一个Java程序,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - 编程语言 】

摘要
  
  通过本章的学习,读者应了解Java语言的两种程序:应用程序、小应用程序的基本结构,能够编译、运行Java应用程序和小应用程序。
  
  
  --------------------------------------------------------------------------------
  
  
  
  本章目标:
  
  通过本章的学习,读者应了解Java语言的两种程序:应用程序、小应用程序的基本结构,能够编译、运行Java应用程序和小应用程序。
  
  4.1 Java应用程序(Application)
  
  与前几章不同,在这一章节里,我们将先一起动手做一做,体会一下。然后再结合这个实践的体会,为大家做相应的讲解。
  
  前面东一榔头,西一棒槌闲扯许多与Java相关的知识,想必许多读者已经感到几分倦意了,别急,我们现在就一起来编写一个Java应用程序,然后一起编译、运行它。
  
  1. 进入MSDOS方式,新建一个学习目录:
  
  
  c:window md c:javastudy
  c:window cd c:javastudy
  
  
  
  注重:
  
  因为使用JDK完全是基本命令行的,所以我们今后会经常在“MS-DOS方式”下工作,而Java程序是在Windows下运行的,所以不能直接使用MSDOS,而应在Windows中运行MS-DOS窗口。
  
  2. 编辑Java语言应用程序(Java Application)源程序:
  
  你可以使用任何编辑器书写Java源程序,在此我建议你使用Windows的写字板,你可以直接在MS-DOS窗口调用它,而且这样使用也更方便,不会在存盘时碰到多出个“.txt”的扩展名的麻烦:
  
  
  c:javastudy notepad HelloWorld.java
  
  
  
  注重:
  
  当你输入文件名HelloWorld.java时,请一定要按照例子中的样式输入,要区分大小写。至于为什么?我们会在后面给出解答。
  
  这时,将会自动回到Windows桌面,然后将出现一个形如下图的对话框,提示你要编辑的文件HelloWorld.java并不存在,是否新建一个:
  
  
  图4-1 提示对话框
  
  单击“是(Y)”按钮继续,这时就会出现你十分熟悉的“记事本”程序界面,你输入下面的程序代码,然后存盘退出。
  
  源程序:HelloWorld.java
  
  
  public class HelloWorld
  {
  public static void main(String args[])
   {
  System.out.println("Hello World!!");
  }
  }
  
  
  
  3. 首先在任务栏上点击“MS-DOS方式”任务项,回到刚才打开的那个MS-DOS窗口。程序写完之后,我们就要编译它了!输入命令:
  
  
  c:javastudy javac HelloWorld.java
  
  
  
  假如一切正常的话,20秒钟左右,将回到命令提示符“c:javastudy”,没有任何错误提示就表明编译成功了。编译成功后,你可以通过DIR命令观察到,编译生成了一个名叫HelloWorld.class的文件。这个文件是存放的就是JAVA伪编译生成的字节码。
  
  注重:
  
  笔者经常发现有些初学者会碰到一个错误:Bad command or file name,这就是没有设置Java的路径,请确保c:jdk1.2in在搜索列表中。
  
  4. 编译完成后,我们就可以执行这个程序了。由于编译生成的是字节码,所以并不能直接运行,需要使用Java的解释器来行。输入命令:
  
  
  c:javastudy java HelloWorld
  
  
  
  注重:
  
  注重,在这个命令中应该是HelloWorld,而不是“HelloWorld.class”,更不是“HelloWord.java”,请一定要注重。
  
  这个程序的结果如下图所示:
  
  
  图4-2 HelloWorld程序的输出
  
  也就是说,做完了以上工作之后,我们会在MS-DOS窗口中得到一行输出:Hello World!!
  
  这就是这个Java应用程序的输出结果。它可能并不有趣,但通过这个简单的例子,我们学会了编译、运行一个Java应用程序。
  
  现在,我们已经看到了这个程序的运行结果,接下来,我们就一起来看一下这个程序的结构。
  
  1. 粗看程序
  
  我们先粗略地观察一下这个仅有7行的程序,应该可以发现两个特点:
  
  1) 使用符号“{”、“}”标记程序段的开始和结束;
  
  2) 使用“;”标记语句结束;
  
  这不是与C/C++语言一样吗!
  
  2. 细看程序
  
  接着,我们使用逐层解析法来仔细地阅读一下这个程序:
  
  1) 我们先看程序的最外层:
  
  
  public class HelloWorld
  {
  ………
  }
  
  
  
  很明显,public class HelloWorld包括了所有的程序段,也就是说这个程序就是public class HelloWorld,我们从字面上来理解一下:
  
  public:公众、公用的;
  
  class:类;
  
  也就是说,这是一个类,一个公用的类,它的名字叫做“HelloWorld”,这整个程序就是HelloWorld类。
  
  2) 然后看内面一层:
  
  
   public static void main(String args[])
   {
   ……
   }
  
  
  
  那么在这个类里,有些什么东西呢?我们看到了,在HelloWorld类中只有一段程序(因为只有一组{},说明只有一段)。这一段就不那么直观了,不过大家注重到没有这一段程序中有一个很重要的“线索”:main(),假如熟悉C/C++语言的都应该知道这是一个C/C++程序的入口函数呀,程序就从这里开始执行的。
  
  那么我告诉你,main()对于Java应用程序来说,也是一个十分重要的方法,因为Java解释器会从main()开始解释。不过这里的的main()不叫函数,而叫方法。
  
  3) 最后分析一下最里层:
  
  
  System.out.println("Hello World!!");
  
  
  
  这最里面的一层,就是main()方法中程序语句。对,就是它让屏幕中出现了Hello World!!的。我们一起试着阅读一下:
  
  system:系统
  
  out:输出
  
  println:这个单词倒没有,但print大家总明白吧,打印!!
  
  明白了,大概就是说往系统的输出界面(屏幕)上打印东西,什么东西呢?对,就是括号内的字符“Hello World!!”。明白了吗?
  
  到这里,我们应该对这个程序有了更深的了解了,也对Java应用程序的结构也有一些熟悉,不过这仅是皮毛,更具体、具体的内容和困难在以后的章节中等待着您呢!
  
  一些提示:
  
  现在请大家想一想在前面留下的思考,为什么输入java HelloWorld来执行这个程序,而不java HelloWorld.class呢?看你是不是有答案。
  
  自测练习
  
  练习一:试着使用以下两个命令调用Java解释程序,分别写出它们的结果:
  
  1) java HelloWorld.java
  
  ____________________________________________________
  
  2)java HelloWorld.class
  
  ___________________________________________________
  
  练习二:将下面的Java程序Welcome.java输入电脑;接着编译、运行一下,然后回答下面所列出来的问题。
  
  1)将编译、运行这个程序的命令写出来:
  
  _________________________________
  
  _________________________________
  
  2)请说说,程序运行的结果是什么?
  
  源程序:Welcome.java
  
  
  import javax.swing.*;
  public class Welcome
  {
  public static void main(String args[])
  {
  JOptionPane.showMessageDialog(
  null,
  “Welcome to World of Java!”,
  “Welcome, dear Friend!”,
  JOptionPane.PLAIN_MESSAGE);
  System.exit(0);
   }
  }
  
  
  
  练习答案
  
  练习一:
  
  1)Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/java
  
  2)Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/java
  
  输出都一样,找不到HelloWorld这个类。也就是说,使用Java解释器进行解释时,后面的参数应该是类名。
  
  练习二:
  
  1) 命令为:
  
  
  c:javastudy notepad Welcome.java
  c:javastudy javac Welcome.java
  c:javastudy java Welcome
  
  
  
  2) 这个程序的输出如下图所示:
  
  
  图4-3 Java应用程序Welcome.java的运行结果
  
  在这个程序的编译、执行时,你都将花费挺长的时间,由此可以看出Java程序的执行效率的确是要低一些的。
  
  4.2 Java小应用程序(Applet)
  
  在上一小节中,我们已经成功地编辑、编译、运行了两个Java应用程序:HelloWorld和Welcome,现在我们一起来编辑、编译、运行一个Java小应用程序。
  
  1.首先,编辑Java语言小应用程序(Java Applet)源程序:
  
  与编辑Java应用程序相同,我们使用以下命令调用“写字板”程序来编辑小应用程序的源程序。
  
  
  c:javastudy notepad HelloWorldApplet.java
  
  
  
  注重:
  
  编写小应用程序时,还是要注重文件名的大小写。
  
  在写字板中,输入下面的程序代码,然后存盘退出。
  
  源程序:HelloWorldApplet.java
  
  
  import java.applet.Applet;
  import java.awt.Graphics;
  public class HelloWorldApplet extends Applet
  {
  public void paint(Graphics g)
  {
  g.drawString(“Hello World!”,0,50);
  }
  }
  
  
  
  2.接着我们回到刚才打开的那个MS-DOS窗口。编译刚才我们编写的那个小应用程序,输入命令:
  
  
  c:javastudy javac HelloWorldApplet.java
  
  
  
  假如一切正常的话,20秒钟左右,将回到命令提示符“c:javastudy”,没有任何错误提示就表明编译成功了。编译成功后,将生成一个名为HelloWorldApplet.class的文件。
  
  3. 编辑包容Java小应用程序的Html文件,输入命令:
  
  
  c:javastudynotepad HelloWorldApplet.html
  
  
  
  一些提示:
  
  使用Java编程,Java源程序文件的名字应与类名一致,但包含小应用程序的HTML文件则无需与其一致。笔者在此取了一样的名字是为了更易于阅读。
  
  然后在写字板中输入以下内容,存盘退出。
  
  
  HTML
  HEAD
  TITLEThis is test of Java Applet /TITLE
  /HEAD
  BODY
  APPLET CODE=”HelloWorldApplet.class” WIDTH=200 HEIGHT=200
  /APPLET
  /HTML
  
  
  
  一些说明:
  
  由于Java小应用程序是不能直接使用命令行来运行的,它们是嵌入到网页中的,要使用浏览器才能够运行。而浏览器是无法直接执行Java小应用程序的。这时我们就必须通过HTML文件来告诉浏览器执行Java小应用程序。
  
  在HTML文件中嵌入Java小应用程序,应使用APPLET/APPLET标志,这个标志包含几个参数:
  
  CODE=“”:用来指出要嵌入的Java小应用程序名称;
  
  WIDTH=x:用来指定Java小应用程序的宽度;
  
  HEIGHT=x:用来指定Java小应用程序的高度。
  
  4. 运行Java小应用程序HelloWorldApplet。
  
  我们可以通过两种方法来运行Java小应用程序:一种方法是使用支持Java的浏览器(如微软的IE、还用Netscape的Navigator),另一种方法是使用Java的小应用程序浏览器AppletViewer。下面我们就分别介绍一下。
  
  1) 使用支持Java的浏览器,在此以IE为例:
  
  打开IE浏览器,在地址栏上输入“c:javastudyHelloWorldApplet.html”,将看到这个小应用程序的输出结果,如下图所示:
  
  
  图4-4 使用IE运行这个Applet
  
  2) 假如使用JDK中的小应用程序浏览器AppletViewer的话,请输入以下命令:
  
  
  c:javastudy AppletViewer HelloWorldApplet.html
  
  
  
  这时,你将看到如下图所示的输出:
  
  
  图4-5 使用AppletViewer查看Applet
  
  好了,我们又成功地完成了一次Java小应用程序实践,做了一次编辑、编译、运行的练习。下面我们一起往返顾一下:
  
  让我们一起来看一下刚才的那个Java小应用程序的源代码,了解一下它的结构,以帮助我们更深刻地了解它。
  
  同样,我们再使用刚才那个方法:逐层解析法,一步步地分析这个程序。
  
  接着,我们使用逐层解析法来仔细地阅读一下这个程序:
  
  1) 首先我们发现这个程序与上一小节的应用程序相比,最前面多了一段,我们先来看看:
  
  
  import java.applet.Applet;
  import java.awt.Graphics;
  
  
  
  这两句都是以“;”结束的,说明都是一个完整的Java语句。那么它到底起到什么作用呢?我们来从字面上理解一下:
  
  import:输入、进口
  
  也就是说,把java.applet.Applet和java.awt.Graphics输入/进口到程序中来。熟悉C/C++语言的读者,看到这里有什么联想没有!
  
  你想起C/C++中的include语句没有,C/C++语言中是通过include语句系统提供的头文件、或自己编写的头文件包含到程序中来。
  
  Java语言中的import语句就是C/C++语言的include语句,它用来将Java语言提供的类输入到程序中来,这样就可以直接使用输入的类,大大节省了程序设计的时间。
  
  从字面上理解,我们可以知道:
  
  java.applet.Applet:就是关于小应用程序applet的类;
  
  java.awt.Graphics:则应该是与Graphics(图形)有关的类!
  
  注重:
  
  讲解到这里,似乎会给大家一个误解,认为只有在Java小应用程序中会使用import语句,而在Java应用程序中不要使用import语句。千万不要有这个误解,否则我就是“误人子弟”的千古罪人了。
  
  在Java应用程序中也一样可以使用import语句来扩展程序,而前面的两个例子,是十分简单的应用程序,所以没有用到import语句。而Java小应用程序是一定要使用这个语句的,应为至少需要包括与Applet有关的类。
  
  2) 接着,我们看import语句下面:它是整个程序的最外层:
  
  
  public class HelloWorldApplet extends Applet
  {
   ………
  }
  
  
  
  很明显,public class HelloWorldApplet extends Applet包括了所有的程序段,也就是说这个程序就是public class HelloWorldApplet extends Applet,我们从字面上来理解一下:
  
  public:公众、公用的;
  
  class:类;
  
  extends:扩展、延伸
  
  也就是说,这是一个类,一个公用的类,它的名字叫做“HelloWorldApplet”,这整个程序就是HelloWorldApplet类。在这个类的名字后面加上了extends Applet,说明这个类是从Applet扩展、延伸出来的,也就是说Applet是“HelloWorldApplet”的父类(超类),而“HelloWorldApplet”则是Applet的子类。
  
  一些提示:
  
  其实这里指出的Applet类是所有Java小应用程序的超类。
  
  3) 然后我们来看一下这个类里的内容:
  
  
  public void paint(Graphics g)
  {
  ……
  }
  
  
  
  我们发现在这个类中有一个方法:paint,大家一定会感觉到希奇,为什么没有main()方法,而却只有一个paint方法呢!
  
  这是因为,小应用程序不是自己启动的,而是被已经运行的程序(浏览器)加载的。浏览器预定义了每个小应用程序要做的东西。它是通过调用小应用程序具有的方法来实现加载的。这个方法就是paint。
  
  说得更通俗、明白一些,就是说Java应用程序是自己启动的,从main()方法开始,而小应用程序则是由浏览器调用的,浏览器在不同的时候就调用小应用程序中的方法,比如浏览器要显示小应用程序就调用小应用程序的paint方法。
  
  4) 最后,就是paint方法所做的事:
  
  
  g.drawString(“Hello World!”,0,50);
  
  
  
  这一行程序就是当paint方法被调用时所执行的语句,我们一起从字面上理解一下:
  
  draw:画、写
  
  String:字符串
  
  而g是被定义为Graphics。
  
  大概的意思就是使用Graphics向屏幕书写字符串。那么写什么呢?写”Hello World!”,位置呢!对位置(0,50)。
  
  好了,对这个程序的探究就到此为止了。更有更细致的东西,我们就留到后面的章节中逐一地说明吧。下面我们一起来做一些巩固性的练习吧!
  
  自测练习
  
  与上一小节一样,我们还是通过实际的练习来巩固一下。
  
  将下面的Java小应用程序WelcomeApplet.java输入电脑;接着编译、运行一下,然后回答下面所列出来的问题。
  
  1)首先请您写出您是如何完成这个任务的:
  
  _________________________________________________________________
  
  _________________________________________________________________
  
  _________________________________________________________________
  
  2)请说说,程序运行的结果是什么?
  
  源程序:Welcome.java
  
  
  import java.applet.Applet;
  import java.awt.*;
  public class WelcomeApplet extends Applet
  {
   Label textLabel;
   public void init()
   {
  textLabel=new Label (“Welcome to World of Java!”);
  textLabel.setAlignment(Label.CENTER);
  this.add(textLabel);
   }
  }
  
  
  
  练习答案
  
  1) 首先,启动写字板,编辑WelcomeApplet.java:
  
  接着,执行以下命令编译它:
  
  
  c:javastudy javac WelcomeApplet.java
  
  
  
  然后编写一个WelcomeApplet.html文件,其内容如下:
  
  
  HTML
  BODY
  APPLET CODE=”WelcomeApplet.class” WIDTH=500 HEIGHT=200
  /APPLET
  /HTML
  
  
  
  最后,执行以下命令,启动小应用程序浏览器观察这个小应用程序:
  
  
  c:javastudy AppletViewer WelcomeApplet.html
  
  
  
  或者打开IE浏览器,在地址栏上输入“c:javastudyWelcomeApplet.html”,将看到这个小应用程序的输出结果。
  
  2)假如使用小应用程序浏览器将看到以下输出:
  
  
  图4-6 使用小应用程序浏览器观看运行结果
  
  假如使用IE,将看到以下输出:
  
  
  图4-7 使用IE观看运行结果

来源:http://www.tulaoshi.com/n/20160219/1603161.html

延伸阅读
http://community.csdn.net/EXPert/topic/3517/3517995.XML?temp=.2898371 这是我的第一个Struts应用,仅仅用于用户注册;注册的用户存入数据库中。 参考《jsp应用开发详解》电子工业出版社 PART I/III /** SQL Server 2000 Tomcat 4.1 Struts jakarta-struts-1.1 Editplus */ //----数据库脚...
王克宏 郁欣 孙元 王曦东 § 1.1 Java语言出现的背景、影响及应用前景 一、背景 最近一年多来 ,在 Internet上出现的非凡吸引人的事件就是Java语言和用 Java编写的浏览器 HotJava。 1991年 ,SUN MicroSystem公司的 Jame Gosling、 Bill Joe等人 ,为在电 视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一...
一、理解多线程 多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。 多...
标签: Java JAVA基础
  第一个JSP 实际上,JSP只是简单地将Java放到HTML网页中去而已。你可以将现有的HTML网页将它们的扩展名由“.html”改为“.jsp”,这是一个创建第一个JSP最好的方法。 我们可以将上一个练习中的文件将它的扩展名由“.html”改为“.jsp”。然后在浏览器中装载新的文件,即以“.jsp”为扩展名的文件。 此时,你可以看到的输出,但是它需...
标签: ASP
       作者:rainbow ASP动网先锋      3.0 选择一个编辑器      尽管我是一个顽固的Notepad狂,但这次我不建议用它编辑源码。原因是你正在与真正的编程语言打交道,使用Notepad编辑源码编译时可能产生大量的错误信息行(C++程序员知道我在说什么。)  &n...

经验教程

59

收藏

21
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部