亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

菜鳥初學Java的備忘錄之Applet

2019-11-18 11:48:55
字體:
來源:轉載
供稿:網友

  java的入門比我想象中的還要簡單的多,目前為止我已經對Java的基本語法結構有所了解。但我知道,深入的研究任何一門語言,都需要時間和實踐的積累.
  
  Applet是Java編寫的可以在瀏覽器端運行的代碼,它與應用程序的明顯區別在于其執行方式的不同,應用程序如C程序是從main()主程序開始運行的,而Applet則比較復雜.具體如何復雜我不太清楚,但我會慢慢清楚的。關于Applet的一個重要性質是,我可以將Html中的值作為參數傳遞給Applet(通過getParameter()來獲取參數值).這樣,為了產生不同的效果,我們不需要重新編譯Java程序,而只需修改HTML的參數值即可。由于HTML的代碼也可以動態生成的,因此我可以對網頁的動態效果進行隨心所欲的控制.
  
  在Applet的生命周期中有3個比較主要的方法:init,start,stop。
  
  init():負責Applet的初始化,在整個Applet的生命周期中,只執行一次該方法.和Delphi中的OnCreate()事件是一樣的道理
  
  start():系統在調用完init()后,將自動調用start(),并且每次當前窗口被重新激活時,都會調用該方法,和Delphi中的OnShow()事件是差不多的。
  
  stop():用戶離開Applet所在頁面后調用該方法。它使你在用戶不注重Applet的時候,停止一些資源的工作以免影響系統運行效率.并且我們不需要人為地去掉該方法.該方法同Delphi中的OnClose()事件差不多。
  
  下面是一個Applet版的HelloWorld
  
  文件名:HelloWorld.java
  
  import java.applet.Applet;
  import java.awt.Graphics;
  
  public class HelloWorld extends Applet
  {
  String title;
  public void init(){
  title="Hello World";
  }
  
  public void paint(Graphics g)
  {
  g.drawString(title,50,20);
  }
  
  }
  
  我們可以看到,程序中是沒有主函數的,那它如何運行呢.既然Applet是在瀏覽器環境下運行的,那我們就需要在HTML文件中來調用它.需要使用的相關標簽就是<Applet>標簽,我們首先建立HTML文件test.htm,源代碼如下:
  
  <html>
  <body>
  Here comes my first applet:
  <br>
  <applet code=HelloWorld.class width=650 height=500>
  </applet>
  </APPLET>
  </body>
  </html>
  
  將該文件和HelloWorld.java放在同一個目錄中,然后編譯HelloWorld.java之后,直接點擊test.htm打開,就可以看到Applet程序被啟動了.或者使用AppletViewer命令AppletViewer test.htm也可以不需要瀏覽器直接運行該Applet。
  
  下面一個程序可以更好的幫助我們理解Java Applet在整個生命周期是如何調用上面我們介紹的幾個方法的。
  
  文件名:StartStop.java
  
  import java.awt.*;
  import java.applet.*;
  
  public class StartStop extends Applet
  {
  StringBuffer message;
  public void init()
  {
  message=new StringBuffer("Init done...");
  }
  
  public void start()
  {
  message.append("Started...");
  }
  
  public void stop()
  {
  message.append("Stopped...");
  }
  
  public void paint(Graphics g)
  {
  g.drawString(message.toString(),150,50);
  }
  
  }
  
  運行方法同上.(該程序可參考機械工業的<Java 簡明教程>)
  
  同C語言不一樣,使用Java實現GUI要輕松的多。由于是純面向對象的語言,Java的AWT提供了各種界面元素供我們調用,如同Delphi里面的組件一樣。下面是Java中的GUI對象和Delphi中的相應組件的對照表。
  
  Java     Delphi
  
  Button    TButton
  Canvas    TCanvas
  Checkbox   TCheckbox
  CheckboxGroup TRadioGroup
  Choice    TComboBox
  Label     TLabel
  TextField   TEdit
  TextArea   TMemo
  
  然而,JDK并不是可視化的RAD(rapid application development)開發工具,對于對象的使用不能如Delphi那樣只需要拖拉,移位就可以,而需要我們寫調用代碼.這就產生了一個麻煩,我怎么樣才能夠讓元素按我的要求在界面中擺放呢?在元素不多時可以讓Java自動布局(Layout),但是元素很多時,或者需要根據應用程序的要求來擺放元素時,就需要使用面板了(Panel).面板在Delphi里也有相應的組件(TPanel),但主要是用來對界面分割,進行粗略的布局的,精確的定位還需要開發人員手動調節.而Java則只能用Panel來定位,不能不說是個缺陷.也許是我還沒學到吧。
  
  入門之后,就該深入到對象的概念了。
  
  假設在Java中創建了一個叫做Date的自定義數據類型如下
  public class Date{
  int day;
  int month;
  int year;
  }
  
  那么對于以下三條聲名變量的語句,java在為其分配內存的時候有什么不同嗎?
  (1) int i;
  (2) Date mybirth;
  (3) Date mybirth=new Date();
  
  很顯然是有的,分配情況如下:
  
  (1)Java自動為整數i分配整形變量的內存,一般是兩個字節
  
  (2)Java聲明了一個Date類的實例變量mybirth,并為其分配了存儲空間,但這個存儲空間里面存儲的只是一個引用,或者說是一個地址,目前的地址里面什么都沒有,那么我們就還不能使用這個實例變量,不能引用它的成員。
  
  (3)Java創建了一個Date類的實例變量mybirth,并為其成員變量分配了足夠的存儲空間,最后返回對這個存儲空間的一個引用,也就是返回這個存儲空間的首地址,以后就通過mybirth,即這個首地址來訪問這個實例變量里面的各個成員,如mybirth.day,mybirth.month,mybirth.year。
  
  當我們聲明一個基本數據類型的變量(如boolean, byte, short, char, int,long,flat,double)時,系統會自動為變量分配內存。但是假如聲明了String或者用戶自定義的變量時,系統不會立即為其分配內存.為什么會這樣呢?
  
  這是因為,String和用戶自定義的變量都屬于類的范疇.一個被聲明為類的變量,已經不再是一個數據了,而變成對數據的一個引用,就是說mybirth可以看作是一個指向類的一個實例的指針,里面存放的是地址.這樣的話就好理解了。
  
  深入一點,既然類的實例變量值是指針,這個指針指向一個類的實例,那么我們顯然可以定義多個名稱不同的類的實例變量,而將它們全都指向一個實例。比如:
  
  University u=new University();//定義了一個類University的實例變量u,并為其分配對象的存儲空間
  
  University u2=u;//又定義了一個實例變量u2,將u的值賦給u2
  
  那么顯然u2和u除了名稱不同外,其實是一回事,因為它們指向相同一個地址.
  
  我覺得弄清楚這一點還是很重要的。這些數據結構的東西,是一個程序員需要知道的所以然.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国模吧一区二区三区| 国产成人欧美在线观看| 激情成人中文字幕| 欧美一级片免费在线| 在线播放国产一区二区三区| 国产精品电影久久久久电影网| 国产99久久精品一区二区 夜夜躁日日躁| 国产成人精品亚洲精品| 尤物yw午夜国产精品视频| 日韩欧美国产一区二区| 国产91成人在在线播放| 国产伦精品免费视频| 日韩成人中文字幕在线观看| 性日韩欧美在线视频| 欧美日韩中文在线| 欧美性xxxx在线播放| 日韩小视频在线观看| 国产一区二区香蕉| 97精品伊人久久久大香线蕉| 国产男人精品视频| 国产一区视频在线| 亚洲国产中文字幕久久网| 亚洲精品少妇网址| 在线日韩日本国产亚洲| 97香蕉超级碰碰久久免费的优势| 国产精品福利在线| 久久久精品电影| 91亚洲精品在线观看| 亚洲日韩中文字幕| 国产精品福利小视频| 亚洲人成电影在线观看天堂色| 久久久久久久久久久亚洲| 国产精品第一区| 欧美人交a欧美精品| 亚洲欧美国产一本综合首页| 成人午夜黄色影院| 欧美精品久久久久久久免费观看| 久久精品青青大伊人av| 成人妇女免费播放久久久| 久久久97精品| 亚洲va欧美va在线观看| 伊人激情综合网| 91人人爽人人爽人人精88v| 欧美激情伊人电影| 国模精品视频一区二区三区| 国产精品扒开腿做爽爽爽男男| 91av在线视频观看| 日韩av在线精品| 69视频在线免费观看| 一区二区三区国产视频| 国产精品私拍pans大尺度在线| 精品国偷自产在线| 国产精品吹潮在线观看| 免费av在线一区| 国产91精品久久久久久| 国产精品久久久久高潮| 国产欧美va欧美va香蕉在| 亚洲成人av在线播放| 久久久久国产精品免费网站| 日本欧美爱爱爱| 欧美专区福利在线| 久久久精品2019中文字幕神马| 亚洲综合国产精品| 在线观看日韩欧美| 成人在线一区二区| 亚洲美女在线视频| 日韩精品丝袜在线| 精品成人乱色一区二区| 欧美黑人一级爽快片淫片高清| 国模私拍视频一区| 91精品在线国产| 久久久久久亚洲| 中文国产成人精品| 亚洲国产中文字幕在线观看| 色婷婷综合久久久久中文字幕1| 亚洲有声小说3d| 精品国产91乱高清在线观看| 欧美高清激情视频| 国产精品午夜一区二区欲梦| 91精品免费看| 国产美女精品免费电影| 日韩免费高清在线观看| 亚洲精品国产精品国自产观看浪潮| 国产精品第10页| 国产精品美乳在线观看| 久久久久久国产免费| 国产成人精品日本亚洲专区61| 国产精品网站大全| 久久精品91久久香蕉加勒比| 成人激情综合网| 91精品国产99| 日韩欧美亚洲范冰冰与中字| 国产精品无av码在线观看| 97国产精品久久| 国产日韩精品一区二区| 国产日韩欧美另类| 国产精品丝袜一区二区三区| 亚洲精品日韩久久久| 88国产精品欧美一区二区三区| 国产日韩在线亚洲字幕中文| 国产日韩精品在线播放| 亚洲精品女av网站| 久久国产加勒比精品无码| 欧美午夜精品久久久久久浪潮| 日韩精品在线观看网站| 一区二区三区视频在线| 欧美综合一区第一页| 日韩精品中文字幕有码专区| 欧美高清视频在线播放| 91国产视频在线| 亚洲福利视频久久| 欧美成人精品一区二区| 欧美日韩免费网站| 久久精品久久精品亚洲人| 色婷婷综合久久久久| 91sao在线观看国产| 久久免费成人精品视频| 日韩av在线免费播放| 国产美女主播一区| 69国产精品成人在线播放| 国产精品2018| 欧美一级电影免费在线观看| 欧美精品videos| 精品国产一区二区三区久久狼黑人| 亚洲欧美激情精品一区二区| 91精品国产成人| 亚洲色图日韩av| 中文国产亚洲喷潮| 欧美极品少妇与黑人| 亚洲男人7777| 日韩av在线看| 狠狠爱在线视频一区| 在线观看视频99| 欧美在线视频网| 日韩在线视频免费观看| 91精品91久久久久久| 欧美精品久久久久久久| 91日本在线视频| 欧美激情亚洲国产| 久久91亚洲精品中文字幕| 国产在线视频2019最新视频| 色偷偷av一区二区三区| 性欧美长视频免费观看不卡| 精品中文字幕在线2019| 日韩最新免费不卡| 久久久久999| 黄网站色欧美视频| 91产国在线观看动作片喷水| 日韩精品在线影院| 日韩成人中文字幕在线观看| 国产精品久久久久久久久久免费| 色偷偷91综合久久噜噜| 91精品在线观看视频| 久久成人免费视频| 亚洲第一页中文字幕| 国产在线观看精品一区二区三区| 国产91对白在线播放| 欧美裸身视频免费观看| 97视频网站入口| 成人午夜两性视频| 一区二区三区 在线观看视| 日韩成人小视频| 浅井舞香一区二区| 欧美午夜精品久久久久久人妖|