程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java入門(4) 第一個Java程序

Java入門(4) 第一個Java程序

編輯: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:javastudy>notepad HelloWorldApplet.html
  
  
  
  一些提示:
  
  使用Java編程,Java源程序文件的名字應與類名一致,但包含小應用程序的HTML文件則無需與其一致。筆者在此取了一樣的名字是為了更易於閱讀。
  
  然後在寫字板中輸入以下內容,存盤退出。
  
  
  <HTML>
  <HEAD>
  <TITLE>This 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觀看運行結果
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved