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

赢彩平板打印机

赢彩平板打印机

2016-02-19 13:10

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享Java入门(4) 第一个Java程序,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。
摘要
  
  通过本章的学习,读者应了解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观看运行结果
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
Java入门(4) 第一个Java程序

VC#初学入门:第一个Windows程序

编程语言 网络编程
VC#初学入门:第一个Windows程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

第一个 Visual Basic 应用程序

编程语言 网络编程
第一个 Visual Basic 应用程序

三、第一个Servlet

Java JAVA基础
三、第一个Servlet

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

delphi编写你的第一个com程序

编程语言 网络编程
delphi编写你的第一个com程序

Jboss4.x下第一个EJB2.x程序

编程语言 网络编程
Jboss4.x下第一个EJB2.x程序

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用Struts开发基于MVC的Web应用

用Struts开发基于MVC的Web应用

jquery 图片截取工具jquery.imagecropper.js

jquery 图片截取工具jquery.imagecropper.js
下拉加载更多内容 ↓