Àڹ٠Ŭ·¡½º Æ©¾î

ÃÖÈñâ
»ï¼ºÀüÀÚ ¸ÖƼ¹Ìµð¾î ¿¬±¸¼Ò
E-mail:hcchoi@khgw.info.samsung.co.kr
URL:http://net.info.samsung.co.kr/~hcchoi/

±âÁ¸ÀÇ C/C++À» ÀÌ¿ëÇØ¼­ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´ø »ç¶÷µé¿¡°Ô´Â ¶óÀ̺귯¸® ¶ó´Â °³³äÀº ¾ÆÁÖ Ä£¼÷ÇÑ °ÍÀÌ´Ù. ½ÇÁ¦ ÀÌ·¯ÇÑ ¶óÀ̺귯¸® ¾øÀÌ ÇÁ·Î±×·¥À» °³¹ßÇÑ´Ù´Â °ÍÀº ¾î¼¸é °¡´ÉÄ¡ ¾ÊÀº ÀÏÀ̱⵵ ÇÏ´Ù. ¿¹¸¦ µé¾î¼­ È­¸é¿¡ ¹«¾ð°¡¸¦ ³ªÅ¸³»±â À§Çؼ­ printf()¶ó´Â ÇÔ¼öºÎÅÍ ¸ÕÀú ÀÛ¼ºÇØ¾ß ÇÑ´Ù¸é ÀÌ´Â ¹®Á¦°¡ ¾Æ´Ò ¼ö ¾ø´Ù. µû¶ó¼­ ÄÄÆÄÀÏ·¯¸¦ Á¦°øÇϴ ȸ»ç¿¡¼­´Â ÀÌ·¯ÇÑ ÇÔ¼öµé¿¡ ´ëÇØ¼­´Â Çѵ¥ ¸ð¾Æ¼­ À̸¦ ¶óÀ̺귯¸®ÀÇ ÇüÅ·ΠÁ¦°øÀ» ÇÑ´Ù. µû¶ó¼­ ÇÁ·Î±×·¡¸Ó´Â ½ÇÁ¦ ÇÊ¿äÇÑ ¸ðµç ÇÔ¼öµéÀ» Á÷Á¢ ¸¸µé Çʿ䰡 ¾øÀÌ ¶óÀ̺귯¸®¿¡ ÀÖ´Ù¸é ´Ü¼øÇÏ°Ô ºÒ·¯´Ù°¡ »ç¿ëÇÏ¸é µÈ´Ù. ÀÚ¹ÙÀÇ °æ¿ì¿¡´Â ÇÁ·Î±×·¥¿¡¼­ ¸¹ÀÌ »ç¿ëµÇ´Â Ŭ·¡½ºµéÀ» Çѵ¥ ¹­¾î¼­ ÆÐŰÁö¶ó´Â ÇüÅ·ΠÁ¦°øÀ» ÇÑ´Ù. ÀÚ¹ÙÀÇ Å¬·¡½º ÆÐŰÁö¸¦ ºñ·Ï ±â´É»ó¿¡ ¸¹Àº Â÷ÀÌ´Â ÀÖÁö¸¸ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®ÀÇ VC++ÀÇ MFC³ª º¼¶õµå»çÀÇ OWL°ú °°Àº °³³äÀ¸·Î ÀÌÇØ¸¦ Çϸé Å« ¹«¸®´Â ¾øÀ» °ÍÀÌ´Ù.

ÀÚ¹Ù¿¡¼­´Â ¼­·Î °ü·ÃµÇ´Â Ŭ·¡½ºµéÀ» ¸ð¾Æ¼­ ÆÐŰÁö¶ó´Â °ÍÀ¸·Î Á¦°øÇÑ´Ù°í Çߴµ¥, ½ÇÁ¦ JDK 1.0¿¡ µé¾î°¡ Àִ Ŭ·¡½º ÆÐŰÁö¿¡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.

À̿ܿ¡µµ ´ÙÀ½°ú °°Àº Ŭ·¡½º ÆÐŰÁöµéÀÌ ÀÖ´Ù.

  • sun.tools.debug

    ´ÙÀ½Àº À§¿¡¼­ ³ª¿­ÇÑ °¢°¢ÀÇ Å¬·¡½º ÆÐŰÁö Áß¿¡¼­ ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ´Â Ŭ·¡½ºµé¿¡ ´ëÇØ¼­ ±× »ç¿ë¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸±â·Î ÇÑ´Ù.

    1. ÀÚ¹Ù ¾ÖÇ÷¿ ÆÐŰÁö

    ÀÚ¹Ù ¾ÖÇ÷¿ ÆÐŰÁö¿¡´Â ¾ÖÇ÷¿À» ¸¸µå´Âµ¥ ±âº»ÀÌ µÇ´Â Applet Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù. Applet Ŭ·¡½º¿¡¼­´Â À̹ÌÁö µ¥ÀÌÅͳª ¿Àµð¿À µ¥ÀÌÅ͸¦ ´Ù·ê ¼ö ÀÖ´Â ÇÔ¼öµéÀ» º°µµ·Î Á¦°øÇÑ´Ù.

    ½ÇÁ¦ ¾ÖÇ÷¿ ÆÐŰÁö¿¡´Â AppletÀ̶ó´Â Ŭ·¡½ºÀ̿ܿ¡´Â ¾ø´Ù. µû¶ó¼­ ¿©±â¿¡¼­ AppletÀÇ ¸Þ½îµåµéÀÇ ¾²ÀÓ¼¼¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸±â·Î ÇÑ´Ù.

    ¸ÕÀú ¾ÖÇ÷¿ÀÇ ¶óÀÌÇÁ »çÀÌŬ(»ý¼º, ½ÇÇà, ÆÄ±«)¿¡ °ü°èµÈ ¸Þ½îµåµé¿¡ ´ëÇØ¼­ ´ÙÀ½ÀÇ Äڵ带 ÅëÇØ¼­ »ìÆìº¸±â·Î ÇÑ´Ù.

    import java.awt.Graphics;
    public class Simple extends java.applet.Applet {
    public void init() {
     System.out.println("Initilize!");
    }
    public void start() {
     System.out.println("Start!");
    }
    public void stop() {
     System.out.println("Stop!");
    }
    public void destroy() {
     System.out.println("Destroy!");
    }
    public void paint(Graphics g) {
    g.drawRect(0, 0, size().width - 1, size().height - 1);
    }               
    

    ÀÚ¹Ù ¾ÖÇ÷¿ ½ÇÇà °¡´ÉÇÑ ºê¶ó¿ìÁ®°¡ ¾ÖÇ÷¿ÀÌ ´ã°ÜÁ® ÀÖ´Â HTML ¹®¼­¸¦ Àоî¿À°Ô µÇ¸é ÇØ´ç ¾ÖÇ÷¿ÀÌ ³×Æ®¿öÅ©³ª ÆÄÀÏ ½Ã½ºÅÛÀ» ÅëÇØ¼­ óÀ½À¸·Î ºê¶ó¿ìÁ®¿¡ ·ÎµåµÉ ¶§ ½ÇÇàµÇ´Â ÇÔ¼ö°¡ init()À̶ó´Â ÇÔ¼öÀÌ´Ù. µû¶ó¼­ ¿©±â¿¡¼­´Â ¾ÖÇ÷¿¿¡¼­ ÇÊ¿äÇÑ ÃʱâÈ­ ÀÛ¾÷µéÀ» Çϱ⿡ ¾Ë¸ÂÀº Àå¼ÒÀÌ´Ù. ÀÌ·¸°Ô init() ÇÔ¼ö°¡ ºÒ·ÁÁö°í ³­ ´ÙÀ½¿¡´Â start()¶ó´Â ÇÔ¼ö°¡ ºÒ·ÁÁ®¼­ ½ÇÁ¦ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ°Ô²û ÇØÁØ´Ù. ¸¸¾à »ç¿ëÀÚ°¡ ÇöÀç ¾ÖÇ÷¿ÀÌ ¼öÇàµÇ°í ÀÖ´Â ÆäÀÌÁö¿¡¼­ ´Ù¸¥ ÆäÀÌÁö·Î À̵¿ÇÏ´Â °æ¿ì´Â ¾ÖÇ÷¿ÀÇ ¼öÇàÀ» ¸ØÃß´Â °ÍÀ» ¾Ë·ÁÁÖ±â À§Çؼ­ stop()À̶ó´Â ÇÔ¼ö°¡ ºÒ·ÁÁø´Ù. µû¶ó¼­ stop()¿¡¼­´Â ½ÇÁ¦ ¾ÖÇ÷¿ÀÇ µ¿ÀÛÀ¸·Î ¸ØÃß±â À§Çؼ­ ÇÊ¿äÇÑ ÀÛ¾÷À» ÇØÁØ´Ù. ¸¶Áö¸·À¸·Î ´õ ÀÌ»ó ¾ÖÇ÷¿ÀÌ ÇÊ¿ä ¾ø¾îÁö´Â °æ¿ì¿¡´Â destroy()°¡ ºÒ·ÁÁø´Ù. Âü°í·Î destroy()°¡ ºÒ·ÁÁö±â Àü¿¡ ¹Ýµå½Ã stop()ÀÌ ºÒ·ÁÁö¹Ç·Î, ¾ÖÇ÷¿ ½ÇÇà Áß´Ü¿¡ µû¸¥ ¿©·¯ °¡Áö Ŭ¸°¾÷ ÀÛ¾÷µéÀº ÀϹÝÀûÀ¸·Î stop()¿¡¼­ ÇØÁØ´Ù.

    ´ÙÀ½Àº ½ÇÁ¦ À§ ¸Þ½îµåµéÀÌ ½ÇÁ¦ Äڵ忡¼­ ¾î¶»°Ô »ç¿ëµÇ¾îÁö´Â°¡¸¦ TumbleItem.javaÄڵ带 ÅëÇØ¼­ »ìÆìº¸±â·Î ÇÑ´Ù. TumbleItem.javaÄÚµåÀÇ Ã¹ ºÎºÐÀ» º¸¸é ´ÙÀ½°ú °°Àº init()¹®ÀåÀÌ ÀÖ´Ù.

    /**
    * Initialize the applet. Get attributes.
    */
    public void init() {
     String at = getParameter("img");
     dir = (at != null) ? at : "images/tumble";
     at = getParameter("pause");
     pause = (at != null) ? Integer.valueOf(at).intValue() : 3900;
     at = getParameter("offset");
     offset = (at != null) ? Integer.valueOf(at).intValue() : 0;
     at = getParameter("speed");
     speed = (at != null) ? (1000 / Integer.valueOf(at).intValue()) : 100;
     at = getParameter("nimgs");
     nimgs = (at != null) ? Integer.valueOf(at).intValue() : 16;
     at = getParameter("maxwidth");
     maxWidth = (at != null) ? Integer.valueOf(at).intValue() : 0;
    }
    

    À§ÀÇ Äڵ忡¼­ ÇÏ´Â ÀϵéÀ» °¡¸¸È÷ »ìÆìº¸¸é ³ªÁß¿¡ ¾ÖÇ÷¿¿¡¼­ »ç¿ëµÉ º¯¼öµéÀ» getParameter()¶ó´Â ¸Þ½îµå¸¦ ÅëÇØ¼­ Àоî¿Í¼­ ¼¼ÆÃÇÏ´Â °ÍÀÓÀ» ¾Ë ¼ö ÀÖ´Ù. ÀϹÝÀûÀ¸·Î init()¿¡¼­´Â À§¿Í °°ÀÌ ÁÖ·Î ¾ÖÇ÷¿¿¡¼­ »ç¿ëÇÒ º¯¼öµéÀ» Ãʱâ¿Í Çϰųª, À̹ÌÁö¿Í ¿Àµð¿À µîÀÇ ¸®¼Ò½ºµéÀ» ¹Ì¸® Àоî¿À´Â ÀÏÀ̳ª, ¾ÖÇ÷¿ÀÇ Å©±â¸¦ ÀçÁ¶Á¤ÇÏ´Â ÀÛ¾÷µéÀ» ¼öÇàÇÑ´Ù. ±× ´ÙÀ½¿¡ start()¹®¿¡ ´ëÇØ¼­ TumbleItem.java¿¡¼­ »ìÆìº¸±â·Î ÇÑ´Ù.

    /**
    * Start the applet by forking an animation thread.
    */
    public void start() {
     if (kicker == null) {
         kicker = new Thread(this);
         kicker.start();
     }
    }
    

    ÀϹÝÀûÀ¸·Î start()¹®¿¡¼­´Â ¾ÖÇ÷¿ÀÇ µ¿ÀÛ ¼öÇà¿¡ °ü°èµÈ ÀÏÀ» ¼öÇàÇÑ´Ù°í ÇßÀ¸¹Ç·Î, ÀÛ¾÷ ¾²·¹µå¸¦ Çϳª ¸¸µé¾î¼­ À̸¦ ¼öÇà½ÃŰ´Â ÄÚµåµéÀÌ ¸¹ÀÌ µé¾î°£´Ù. À§ÀÇ Äڵ忡¼­µµ Thread Ŭ·¡½º·Î Á¤ÀÇµÈ kicker°¡ ÇöÀç ¼öÇàÁßÀÌ ¾Æ´Ñ°¡¸¦ °Ë»çÇØ¼­(kicker == null), ¼öÇàÁßÀÌ ¾Æ´Ï¸é »õ·Î¿î ¾²·¹µå¸¦ ¸¸µé¾î¼­ À̸¦ ½ÇÇà½ÃŰ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ¾²·¹µå¿¡ ´ëÇØ¼­´Â ³ªÁß¿¡ ÀÚ¼¼È÷ ¼³¸íÇϵµ·Ï ÇÑ´Ù. ±× ´ÙÀ½À¸·Î stop()¿¡ ´ëÇØ¼­ TumbleItem.javaÄڵ带 ÅëÇØ¼­ »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.

    /**
    * Stop the applet. The thread will exit because kicker is set to null.
    */
    public void stop() {
     if (kicker != null) {
         kicker.stop();
         kicker = null;
     }
    }
    

    À§ÀÇ stop()¿¡¼­´Â ¾ÖÇ÷¿ÀÇ ¼öÇàÀ» ¸ØÃß¾î¾ß ÇϹǷÎ, ½ÇÁ¦ ¼öÇàµÇ°í ÀÖ´Â ¾²·¹µå°¡ ÀÖ´Â °¡¸¦ °Ë»çÇØ¼­(kicker != null), ÀÖ´Ù¸é ¾²·¹µåÀÇ ¼öÇàÀ» ÁßÁö½ÃŰ´Â ÀÛ¾÷À» ¼öÇàÇÑ´Ù.

    ¸¶Áö¸·À¸·Î destroy()¿¡ ´ëÇØ¼­´Â ½ÇÁ¦ ¾Æ¹«·± Àϵµ ÇÒ Çʿ䰡 ¾øÀ¸¹Ç·Î Äڵ带 ³ÖÁö ¾Ê¾Ò´Ù. Âü°íÀûÀ¸·Î ½ÇÁ¦ init()À̳ª start(), stop()µî¿¡¼­ ¾Æ¹«·± ÀÛ¾÷µµ ÇÒ Çʿ䰡 ¾ø´Â °æ¿ì¿¡´Â ½ÇÁ¦ ÇÔ¼ö¸¦ ÀÛ¼ºÇÏÁö ¾Ê¾Æµµ ¹«¹æÇÏ´Ù.

    ¾ÖÇ÷¿¿¡¼­ À̹ÌÁö¿Í ¿Àµð¿À µ¥ÀÌÅ͸¦ ´Ù·ç´Â ¹æ¹ý¿¡ ´ëÇØ¼­ »ìÆìº¸±â·Î ÇÑ´Ù. ¸ÕÀú À̹ÌÁö µ¥ÀÌÅ͸¦ ´Ù·ç´Â ¹æ¹ý¿¡ ´ëÇØ¼­ »ìÆìº¸¸é ´ÙÀ½°ú °°Àº µÎ °¡Áö ¸Þ½îµå°¡ Á¸ÀçÇÑ´Ù.

      Image getImage(URL)   
      Image getImage(URL, String)
    

    ù ¹øÂ° ¹æ¹ýÀº À̹ÌÁöÆÄÀÏ¿¡ ´ëÇÑ ¿ÏÀüÇÑ URLÀ» ±â¼úÇØÁÖ´Â ¹æ¹ýÀÌ°í µÎ ¹øÂ°´Â ¹æ¹ýÀº À̹ÌÁö¿¡ ´ëÇÑ URL°ú ÀÌ¿¡ »ó´ëÀûÀÎ ÆÐ½ºÁ¤º¸¸¦ StringÀ¸·Î ³Ö¾îÁÖ´Â ¹æ¹ýÀÌ´Ù. Âü°íÀûÀ¸·Î ¾ÖÇ÷¿¿¡¼­ ¹Ù·Î ´Ù·ê ¼ö ÀÖ´Â À̹ÌÁö Æ÷¸ËÀº gif¿Í jpegÆ÷¸ËÀÇ À̹ÌÁöÀÌ´Ù. ´ÙÀ½Àº ÀÌ¿Í °°Àº ¹æ¹ýÀ» ÅëÇØ¼­ À̹ÌÁö¸¦ ³ªÅ¸³»´Â ÄÚµåÀÌ´Ù.

     Image img;
     public void init()
     {
      img=getImage(getDocumentBase(), "face.gif") ;
     }
     public void paint(Graphics g)
     {
      g.drawImage(img, 20, 10,this);
     }
    

    À§ÀÇ Äڵ忡¼­ ½ÇÁ¦ À̹ÌÁö¸¦ È­¸é¿¡ ³ªÅ¸³»´Â ¸Þ½îµå´Â Graphics Ŭ·¡½ºÀÇ drawImage()ÀÌ´Ù.

    ¾ÖÇ÷¿¿¡¼­ ¿Àµð¿À¸¦ ´Ù·ç´Â ¹æ¹ýÀº µÎ°¡Áö ¹æ¹ýÀÌ ÀÖÀ¸¸ç auÆ÷¸ËÀÇ ¿Àµð¿À¸¸À» Ç÷¹ÀÌ ÇÒ ¼ö ÀÖ´Ù. ¸ÕÀú ¼Ò¸®¸¦ ³»°í ½ÍÀº Àå¼Ò¿¡¼­ ´ÙÀ½°ú °°Àº Äڵ带 ³Ö¾îÁÖ¸é URL·Î ÁöÁ¤µÈ ¿Àµð¿À µ¥ÀÌÅͰ¡ Ç÷¹ÀÌ µÈ´Ù.

      play(URL)
      play(URL, String) 
    

    ´ÙÀ½ÀÇ ¹æ¹ýÀº AudioClipÀ̶ó´Â ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ¸·Î ¿Àµð¿À µ¥ÀÌÅ͸¦ Àоî¿Í¼­ ÇØ´ç ¸Þ½îµå¸¦ »ç¿ëÇØ¼­ Ç÷¹ÀÌÇϰųª ¸ØÃß´Â ¹æ¹ýÀÌ ÀÖ´Ù.

     AudioClip snd=getAudioClip(URL)   
     AudioClip snd=getAudioClip(URL, String)
     snd.play()
     snd.stop()
     snd.loop()
    

    2. ÀÚ¹Ù AWT ÆÐŰÁö

       java.awt.BorderLayout (implements java.awt.LayoutManager)
              java.awt.CardLayout (implements java.awt.LayoutManager) 
              java.awt.CheckboxGroup
              java.awt.Color 
              java.awt.Component (implements java.awt.image.ImageObserver) 
                     java.awt.Button 
                     java.awt.Canvas 
                     java.awt.Checkbox
                     java.awt.Choice 
                     java.awt.Container 
                          java.awt.Panel 
                           java.applet.Applet (java.Applet ÆÐŰÁö)     
                          java.awt.Window 
                               java.awt.Dialog 
                                    java.awt.FileDialog 
                               java.awt.Frame (implements java.awt.MenuContainer) 
                     java.awt.Label 
                     java.awt.List 
                     java.awt.Scrollbar 
                     java.awt.TextComponent 
                          java.awt.TextArea 
                          java.awt.TextField  
              java.awt.Dimension
              java.awt.Event
              java.awt.FlowLayout (implements java.awt.LayoutManager) 
              java.awt.Font 
              java.awt.FontMetrics 
              java.awt.Graphics 
              java.awt.GridBagConstraints (implements java.lang.Cloneable) 
              java.awt.GridBagLayout (implements java.awt.LayoutManager) 
              java.awt.GridLayout (implements java.awt.LayoutManager)
              java.awt.Image      
              java.awt.Insets (implements java.lang.Cloneable)
              java.awt.MediaTracker 
              java.awt.MenuComponent 
                     java.awt.MenuBar (implements java.awt.MenuContainer) 
                     java.awt.MenuItem 
                          java.awt.CheckboxMenuItem 
                          java.awt.Menu (implements java.awt.MenuContainer)
              java.awt.Point 
              java.awt.Polygon
              java.awt.Rectangle
              java.awt.Toolkit          
    

    AWT ÆÐŰÁö¿¡´Â GUI¿¡ °ü·ÃµÈ Ŭ·¡½ºµéÀÌ µé¾î°¡ ÀÖ´Ù. AWT´Â ±âº»ÀûÀ¸·Î °³º°ÀûÀÎ UI ¿ä¼ÒµéÀ» Ç¥ÇöÇÏ´Â Component Ŭ·¡½ºµé°ú À̵éÀ» Çѵ¥ ¹­À» ¼ö ÀÖ´Â Container¶ó´Â Ŭ·¡½ºµéÀÌ Á¦°øÀÌ µÈ´Ù. ÀÌ·¯ÇÑ °ü°è¿¡¼­ Container´Â ´Ù½Ã ÇϳªÀÇ Component·Î Ãë±ÞµÇ¾îÁú ¼ö ÀÖ´Ù. À̴ Ŭ·¡½º°£ÀÇ »ó°ü °ü°è¿¡¼­µµ Ç¥ÇöÀÌ µÇ´Â °ÍÀ¸·Î Container Ŭ·¡½º°¡ Component Ŭ·¡½ºÀÇ ÀÚ½Ä Å¬·¡½ºÀÓÀ» À§ÀÇ Ç¥¸¦ ÅëÇØ¼­ ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¶ÇÇÑ Container¿¡ ComponentµéÀ» ¹èÄ¡Çϱâ À§Çؼ­ LayoutManager Ŭ·¡½ºµéÀÌ Á¦°øµÇ¾îÁ®¼­ ¿©·¯ °¡Áö ¹æ¹ýÀ¸·Î ComponentµéÀ» À§Ä¡½Ãų ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù.

    ´ÙÀ½Àº AWT¿¡¼­ Á¦°øÇÏ´Â ÄÁÅ×À̳ÊÀÇ Á¾·ùµéÀÌ´Ù.

    Window»óÀ§ ·¹º§ÀÇ À©µµ·Î °æ°è¼±À» °¡ÁöÁö ¾Ê´Â´Ù.
    Frame°æ°è¼±°ú Á¦¸ñ, MenuBar¸¦ °¡Áú ¼ö ÀÖ´Â »óÀ§ ·¹º§ À©µµ·Î
    ÀϹÝÀûÀÎ ÀÚ¹Ù ¾îÇø®ÄÉÀ̼ÇÀÇ º£À̽º Ŭ·¡½º·Î »ç¿ëµÈ´Ù.
    Dialog´ëÈ­»óÀÚ¸¦ ¸¸µå´Âµ¥ »ç¿ëµÇ¾îÁö´Â À©µµÀÌ´Ù.
    FileDialogÆÄÀÏ ½Ã½ºÅÛÀ¸·ÎºÎÅÍ ÆÄÀÏÀ» ¼±ÅÃÇϴµ¥ »ç¿ëµÇ¾îÁö´Â À©µµÀÌ´Ù.
    Panel´Ù¸¥ ÄÁÅ×À̳ÊÀÇ ³»ºÎ¿¡¼­ »ç¿ëµÇÁú ¼ö ÀÖ´Â ÄÁÅÍÀ̳Ê
    (AppletÀÇ »óÀ§ Ŭ·¡½ºÀÌ´Ù).

    ´ÙÀ½Àº AWT¿¡¼­ Á¦°øÇÏ´Â ÄÄÆ÷³ÍÆ®ÀÇ Á¾·ùµéÀÌ´Ù.

    Button ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ´Â ´©¸§(push) ¹öư
    CanvasÆäÀÎÆ®¸¦ Çϰųª »ç¿ëÀڷκÎÅÍ ÀÔ·ÂÀ» °¡·Îä´Âµ¥
    »ç¿ëµÇ¸ç, »ç¿ëÀÚ Á¤ÀÇ ÄÄÆ÷³ÍÆ®¸¦ ¸¸µå´Âµ¥ º£À̽º Ŭ·¡½º·Î »ç¿ëµÇ´Â
    ÀϹÝÀûÀÎ ¸ñÀûÀÇ ÄÄÆ÷³ÍÆ®
    CheckBoxon/off »óŸ¦ °¡Áö´Â ÄÄÆ÷³ÍÆ®
    LabelÀÓÀÇÀÇ À§Ä¡¿¡ ¹®ÀÚ¿­À» ³ªÅ¸³»´Â ÄÄÆ÷³ÍÆ®
    List½ºÅ©·Ñ °¡´ÉÇÑ ½ºÆ®¸µµéÀÇ ¸®½ºÆ®
    Scrollbar½ºÅ©·Ñ °¡´ÉÇÑ Äµ¹ö½º¸¦ ¸¸µå´Âµ¥ »ç¿ëµÇ¾îÁö´Â ÄÄÆ÷³ÍÆ®
    TextArea°£´ÜÇÑ ÅØ½ºÆ®-ÆíÁý ÄÄÆ÷³ÍÆ®
    TextField¾ç½ÄÀ» ¸¸µå´Âµ¥ »ç¿ëµÇ¾îÁö´Â ÇÑÁÙÂ¥¸® ÅØ½ºÆ® ÄÄÆ÷³ÍÆ®

    ¿©±â¿¡¼­ Component¿Í ContainerÀÇ ÁÖ¿ä ¸Þ½îµå µîÀ» »ìÆìº¸±â·Î ÇÑ´Ù. ¸ÕÀú ContainerÀÇ °æ¿ì¿¡ ´ÙÀ½°ú °°Àº ¸Þ½îµåµéÀÌ Á¸ÀçÇÑ´Ù.

    add(Component cmp)ÁöÁ¤µÈ ÄÄÆ÷³ÍÆ®¸¦ ÄÁÅ×À̳ʿ¡ Ãß°¡½ÃŲ´Ù.
    add(String str, Component cmp)ÁöÁ¤µÈ ÄÄÆ÷³ÍÆ®¸¦ ÄÁÅ×À̳ʿ¡ Ãß°¡½ÃŰ¸é¼­,
    ÁÖ¾îÁø ½ºÆ®¸µÀ¸·Î À̸§À» ºÙÀδÙ.
    remove(Component cmp)ÁöÁ¤µÈ ÄÄÆ÷³ÍÆ®¸¦ ÄÁÅÍÀ̳ʿ¡¼­ »èÁ¦½ÃŲ´Ù.
    removeAll()ÄÁÅÍÀ̳ʳ»ÀÇ ¸ðµç ÄÄÆ÷³ÍÆ®µéÀ» »èÁ¦½ÃŲ´Ù.
    getComponents()ÄÁÅ×À̳ʳ»ÀÇ ¸ðµç ÄÄÆ÷³ÍÆ®µéÀ» °¡Á®¿Â´Ù.
    setLayout(LayoutManager lm)ÄÄÆ÷³ÍÆ®¿¡ ´ëÇÑ ¹èÄ¡ °ü¸®ÀÚ¸¦ ¼¼ÆÃÇÑ´Ù.
    getLayout()ÇöÀç ÄÁÅ×À̳ʿ¡¼­ ä¿ëÇϰí ÀÖ´Â ¹èÄ¡ °ü¸®ÀÚ Á¤º¸¸¦ °¡Á®¿Â´Ù.

    À§¿Í °°Àº ¸Þ½îµå À̿ܿ¡µµ ÄÄÆ÷³ÍÆ®¿¡¼­ Á¤ÀÇµÈ ¸ðµç ¸Þ½îµå¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ´Ù. ´ÙÀ½Àº ÄÄÆ÷³ÍÆ®¿¡¼­ Á¤ÀÇµÈ ¸Þ½îµåµéÀ» »ìÆìº¸±â·Î ÇÑ´Ù.

    action(Event, Object)ÄÄÆ÷³ÍÆ® ³»¿¡¼­ ¾×¼ÇÀÌ ÀϾ´Â °æ¿ì¿¡ ºÒ·ÁÁø´Ù.
    disable()ÄÄÆ÷³ÍÆ®¸¦ ºñȰ¼ºÈ­½ÃŲ´Ù.
    enable()ÄÄÆ÷³ÍÆ®¸¦ Ȱ¼ºÈ­½ÃŲ´Ù.
    handleEvent(Event)ÄÄÆ÷³ÍÆ® ³»¿¡¼­ ¹ß»ýÇÑ À̺¥Æ®¸¦ ó¸®ÇÑ´Ù.
    hide()ÄÄÆ÷³ÍÆ®¸¦ ¼û±ä´Ù.
    keyDown(Event, int)۰¡ ´­¸®¾îÁ³À» ¶§ ºÒ·ÁÁø´Ù.
    keyUp(Event, int)۰¡ ´­¸®¾îÁ³´Ù°¡ ¶ç¾îÁú ¶§ ºÒ·ÁÁø´Ù.
    mouseDown(Event, int, int) ¸¶¿ì½º¹öưÀÌ ´­¸®¾îÁ³À» ¶§ ºÒ·ÁÁø´Ù.
    mouseDrag(Event, int, int)¸¶¿ì½º¹öưÀÌ ´­¸®¾îÁø ä·Î À̵¿µÉ ¶§ ºÒ·ÁÁø´Ù.
    mouseEnter(Event, int, int)¸¶¿ì½º°¡ ÄÄÆ÷³ÍÆ®ÀÇ ¿µ¿ª¿¡ µé¾î¿ÔÀ» °æ¿ì¿¡ ºÒ·ÁÁø´Ù.
    mouseExit(Event, int, int)¸¶¿ì½º°¡ ÄÄÆ÷³ÍÆ®ÀÇ ¿µ¿ª¿¡¼­ ºüÁ®³ª°¥ ¶§ ºÒ·ÁÁø´Ù.
    mouseMove(Event, int, int)¸¶¿ì½º ¹öưÀÌ ´­¸®¾îÁöÁö ¾ÊÀº »óÅ¿¡¼­ ÄÄÆ÷³ÍÆ® »ó¿¡¼­ ¿òÁ÷ÀÏ ¶§ ºÒ·ÁÁø´Ù.
    mouseUp(Event, int, int) ¸¶¿ì½º ¹öưÀÌ ´­¸®¿öÁ³´Ù´Ù°¡ ¿ø»óÅ·ΠµÉ ¶§ ºÒ·ÁÁø´Ù.
    move(int, int)ÄÄÆ÷³ÍÆ®¸¦ »õ·Î¿î À§Ä¡·Î À̵¿½ÃŲ´Ù.
    show()ÄÄÆ÷³ÍÆ®¸¦ ³ªÅ¸³­´Ù.
    paint(Graphics)ÄÄÆ÷³ÍÆ®°¡ »õ·Î ±×·ÁÁ®¾ß ÇÏ´Â °æ¿ì¿¡ ºÒ·ÁÁø´Ù.
    repaint()ÄÄÆ÷³ÍÆ®¸¦ »õ·Î ±×¸®µµ·Ï ¿äûÇÑ´Ù.
    update(Graphics)repaint ¿äûÀÌ µé¾î¿À´Â °æ¿ì¿¡ ºÒ·ÁÁö´Â °ÍÀ¸·Î
    ¿©±â¿¡¼­´Â ±âº»ÀûÀ¸·Î paint()¸¦ ºÎ¸¥´Ù.

  • Frame »ùÇÃ
    import java.awt.*;
    public class MyApp extends Frame
    {
            // "final" variables are constants
            static final int H_SIZE = 300;
            static final int V_SIZE = 200;
            public MyApp()
            {
                    super("My First Application");
                    Panel p = new Panel();
                    p.add(new Button("Ok"));
                    p.add(new Button("Cancel"));
                    add("South", p);
                    pack();
                    resize(H_SIZE, V_SIZE);
                    show();
            }
            public static void main(String args[])
            {
                    new MyApp();
            }
    }
    

    °¢ ÄÄÆ÷³ÍÆ®µéÀÇ »ùÇÃ

    Button Ŭ·¡½º
     Button button;
     button = new Button("OK");
     add(button);
    
    Choice Ŭ·¡½º
     Choice SelectOne = new Choice();
    
     SelectOne.addItem("Seoul");
     SelectOne.addItem("Pusan");
     SelectOne.addItem("daejeon");
     
     add(SelectOne);
    
    CheckBox/CheckBoxGroup Ŭ·¡½º
     CheckBoxGroup cbgrp = new CheckBoxGroup();
     CheckBox chk1= new CheckBox("company", cbgrp, ture);
     CheckBox chk2= new CheckBox("school", cbgrp, false);
     CheckBox chk3= new CheckBox("org", cbgrp, false);
     
     add (chk1);
     add (chk2);
     add (chk3);
    
    Label Ŭ·¡½º
     Label l1 = new Label("Welcome to the Workshop!");
     add (l1);
    
    List Ŭ·¡½º
     List lst = new List(3, false);
     lst.addItem("Company");
     lst.addItem("School");
     lst.addItem("Org");
    
     add(lst);
    
    TextField/TextArea Ŭ·¡½º
     TextField tf = new TextField(15);
     TextArea ta = new TextArea(3, 4);
    
     add(tf);
     add(ta);
    
    Scrollbar Ŭ·¡½º
     Scrollbar sb = new Scrollbar(Scrollbar.VERTICAL, 0, 32, 0, 128);
       // orientation, initial value, visible size, min, max
     add(ab);
    
    

    Layout ManagerÀÇ Á¾·ù ¹× ½ÇÁ¦ ¿¹

    FlowLayout
    PanelÀÇ µðÆúÆ® ·¹À̾ƿô ¸Å´ÏÀúÀÌ´Ù. ÄÄÆ÷³ÍÆ®µéÀ» ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ¹èÄ¡½ÃŰ¸é¼­ Áß¾Ó¿¡ ¿Àµµ·Ï ÇÑ´Ù. ÇÊ¿äÇÑ °æ¿ì ÁÙÀ» ¹Ù²Ù¾î¼­ ÄÄÆ÷³ÍÆ®µéÀ» ¹èÄ¡½ÃŲ´Ù.
     button1 = new Button("1");
     button2 = new Button("2");
     button3 = new Button("3");
     add(button1);
     add(button2);
     add(button3);
    
    BorderLayout
    ¸ðµç Windows Ŭ·¡½ºÀÇ ±âº»ÀûÀÎ ·¹À̾ƿô ¸Å´ÏÁ®·Î, ÄÄÆ÷³ÍÆ®µéÀ» ´Ù¼¸ °¡Áö ¹æÇâÀ¸·Î À§Ä¡½Ã۴µ¥, µ¿, ¼­, ³², ºÏ ±×¸®°í Áß¾ÓÀÌ´Ù.
     setLayout(new BorderLayout());
     button1 = new Button("1");
     button2 = new Button("2");
     button3 = new Button("3");
     button4 = new Button("4");
     button5 = new Button("5");
    
     add("North", button1);
     add("East", button2);
     add("South", button3);
     add("West", button4);
     add("Center", button5);
    
    GridLayout
    ÄÄÆ÷³ÍÆ®µéÀ» ÁÖ¾îÁø ¿­°ú ÇàÀ¸·Î °°Àº Å©±â·Î ¹èÄ¡½ÃŰ´Â ·¹À̾ƿô¸Å´ÏÁ®ÀÌ´Ù.
     setLayout(new GridLayout(2,3));
     button1 = new Button("1");
     button2 = new Button("2");
     button3 = new Button("3");
     button4 = new Button("4");
     button5 = new Button("5");
     button6 = new Button("6");
    
     add(button1);
     add(button2);
     add(button3);
     add(button4);
     add(button5);
     add(button6);
    
    GridBagLayout
    °¡Àå À¯¿¬Çϰí Á¤±³ÇÏ°Ô ÄÄÆ÷³ÍÆ®µéÀ» ¹èÄ¡½Ãų ¼ö ÀÖ´Â ·¹À̾ƿô ¸Å´ÏÁ®·Î ÄÄÆ÷³ÍÆ®µéÀ» ¼öÁ÷À̳ª ¼öÆò¼±¿¡ ÁÙÀ» ¸ÂÃ߾ ¹èÄ¡½Ãų ¼ö ÀÖÀ¸¸ç, ÄÄÆ÷³ÍÆ®µéÀÌ ¼­·Î ´Ù¸¥ Å©±âÀ̾ µÈ´Ù.
    CardLayout
    ½Ã°£¿¡ µû¶ó¼­ ´Ù¸¥ ÄÄÆ÷³ÍÆ®µéÀ» Ç¥½ÃÇØ¾ß ÇÏ´Â °æ¿ì¿¡ »ç¿ëµÇ¾îÁö´Â ·¹À̾ƿô¸Å´ÏÁ®·Î ÀϹÝÀûÀ¸·Î Choice Ŭ·¡½º¿Í °°ÀÌ »ç¿ëµÇ¾îÁø´Ù.

    À̹ø¿¡´Â À̺¥Æ®ÀÇ Ã³¸®¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇÑ´Ù. ÀϹÝÀûÀ¸·Î À̺¥Æ®(Event)¸¦ ó¸®ÇÏ´Â °æ¿ì°¡ Űº¸µå¿Í ¸¶¿ì½º ±×¸®°í GUI°¡ °ü·ÃµÇ¾îÁ® ÀÖ´Ù. ¸ðµç À̺¥Æ®µéÀº handleEvent(Event evt)¿¡¼­ 󸮵ǾîÁ® Áö´Âµ¥, ¸î¸î À̺¥Æ®ÀÇ °æ¿ì¿¡´Â ¹Ì¸® Á¤ÀÇµÈ Çڵ鷯 ·çƾµéÀÌ Á¸ÀçÇÑ´Ù.

    Űº¸µå °ü·Ã À̺¥Æ®ÀÇ Ã³¸®´Â KeyDown()°ú KeyUp()¿¡¼­ ó¸®Çϸç, ¸¶¿ì½º °ü·Ã À̺¥Æ®´Â mouseXYZ()¿Í °°Àº ÇüÅÂÀÇ À̺¥Æ® ·çƾ¿¡¼­ ó¸®ÇÒ ¼ö ÀÖÀ¸¸ç, GUI À̺¥Æ®´Â action()¿¡¼­ 󸮵ǾîÁú ¼ö ÀÖ´Ù.

    ´ÙÀ½ÀÇ ÄÚµå´Â ŰÀÔ·ÂÀ» ó¸®ÇÏ´Â µÎ °¡Áö ¹æ¹ý¿¡ ´ëÇØ¼­ º¸¿©ÁØ´Ù.

    public boolean keyDown(Event evt, int key)
    {
            Sytem.out.println(key);
            return false;
    }
    
    public boolean handleEvent(Event evt)
    {
            switch(evt.id)
            {
                    case Event.KEY_PRESS:
                    {
                            System.out.println(evt.key);
                            return true;
                    }
                    default:
                            return false;
            }
    }
    

    ´ÙÀ½ÀÇ ÄÚµå´Â ¹öưÀ̳ª ¸Þ´º¾ÆÀÌÅÒ¿¡ ´ëÇÑ À̺¥Æ® ó¸® ·çƾÀ» º¸¿©ÁØ´Ù.

    public boolean action(Event evt, Object arg)
         {
                if(evt.target instanceof Button)
                 {
                         if("OK".equals(arg))
                         ...
                         return true;
                 }
                 else if(evt.target instanceof MenuItem)
                 {
                         if("File".equals(arg))
                         ...
                         return true;
                 }
                 return false;
    }
    

    3. ÀÚ¹Ù À¯Æ¿¸®Æ¼ ÆÐŰÁö

               java.util.BitSet (implements java.lang.Cloneable)
               java.util.Date                
               java.util.Dictionary 
                     java.util.Hashtable (implements java.lang.Cloneable) 
                           java.util.Properties
               java.util.Observable
               java.util.Random
               java.util.StringTokenizer (implements java.util.Enumeration)
               java.util.Vector (implements java.lang.Cloneable) 
                     java.util.Stack
    


    ÀÚ¹Ù À¯Æ¿¸®Æ¼ ÆÐŰÁö¿¡´Â ÀÚ¹Ù ÇÁ·Î±×·¥ ½Ã¿¡ »ç¿ëµÇ¾îÁö´Â ¿©·¯ °¡Áö À¯Æ¿¸®Æ¼µéÀÌ µé¾î°¡ ÀÖ´Ù. ÁÖ¿äÇÑ Å¬·¡½ºµé·Î´Â ½Ã°£À» ´Ù·ê ¼ö ÀÖ´Â Date Ŭ·¡½º¿Í ۸¦ °¡Áö°í °ªÀ» °¡Á®¿À´Â Dictionary, HashtableÀÌ ÀÖ°í, ÀÓÀÇÀÇ µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¼ö ÀÖ´Â VectorŬ·¡½º¿Í ½ºÅÿ¡ °üÇÑ Stack, ·£´ý °ªÀÌ °ü°èµÈ Random°ª°ú ½ºÆ®¸µ¿¡ ÀÖ´Â ÅäÅ«µéÀ» ºÐ¸®Çس»´Â StringTokenizer Ŭ·¡½º µîÀÌ µé¾î°¡ ÀÖ´Ù. ´ÙÀ½Àº ÁÖ¿ä À¯Æ¿¸®Æ¼ Ŭ·¡½ºµéÀÇ »ç¿ë¹ý¿¡ ´ëÇÑ ¼³¸íÀÌ´Ù.

  • Date
    import java.util.Date;
    class printDate {
     public static void main(String args[]) 
        {
      Date today = new Date();
      System.out.println(today);
      System.out.println("Year "+today.getYear());
      System.out.println("Month "+today.getMonth()); // 0 - 11
      System.out.println("Date "+today.getDate()); // 1 - 31
      System.out.println("Day "+today.getDay()); // 0 -6
     }
    }
    

  • StringTokenizer
    import java.util.StringTokenizer;
    class STokTest {
     public static void main(String args[]) 
        {
     String s = "this is a sample text";
            StringTokenizer st = new StringTokenizer(s);
            while (st.hasMoreTokens()) {
                    System.out.println(st.nextToken());
            }
    }
    

  • Stack

    ´ÙÀ½Àº Stack Ŭ·¡½ºÀÇ ¸Þ½îµåµéÀÌ´Ù.
    boolean empty()½ºÅÃÀÌ ºñ¾îÀִ°¡¸¦ üũÇÑ´Ù.
    Object peek()½ºÅÃÀÇ ¸Ç À§¿¡ ÀÖ´Â ³»¿ëÀ» »ìÆìº»´Ù.
    Object pop()½ºÅÿ¡¼­ ¿ÀºêÁ§Æ®¸¦ Çϳª °¡Á®¿Â´Ù.
    Object push(Object)½ºÅÿ¡ ¿ÀºêÁ§Æ² Çϳª Ãß°¡ÇÑ´Ù.
    int search(Object)½ºÅÿ¡ ƯÁ¤ ¿ÀºêÁ§Æ®°¡ ÀÖ´Â °¡¸¦ °Ë»çÇØ¼­
    ±× À§Ä¡¸¦ ¾Ë·ÁÁØ´Ù.

    4. ÀÚ¹Ù ¾ð¾î ÆÐŰÁö

               java.lang.Boolean 
               java.lang.Character     
               java.lang.Class 
               java.lang.ClassLoader
               java.lang.Compiler 
               java.lang.Math
               java.lang.Number 
                      java.lang.Double 
                      java.lang.Float 
                      java.lang.Integer 
                      java.lang.Long
               java.lang.Process
               java.lang.Runtime
               java.lang.SecurityManager
               java.lang.String 
               java.lang.StringBuffer 
               java.lang.System
               java.lang.Thread (implements java.lang.Runnable) 
               java.lang.ThreadGroup 
               java.lang.Throwable 
    


    ÀÚ¹Ù ¾ð¾î ÆÐŰÁö ³»¿¡´Â ÀÚ¹ÙÀÇ ¸ðµç Ŭ·¡½ºµéÀÇ ±âº»ÀÌ µÇ´Â ObjectŬ·¡½º¸¦ ºñ·ÔÇÏ¿©, ±âº» µ¥ÀÌÅÍ Å¸ÀÔ¿¡ °ü·ÃµÈ Ŭ·¡½ºµé, Integer, Long, Float, DoubleµîÀÌ Å¬·¡½ºµéÀÌ Á¸ÀçÇÑ´Ù. ¶ÇÇÑ »ó¼ö ½ºÆ®¸µÀ» ´Ù·ç±â À§ÇÑ String Ŭ·¡½º¿Í °ª°ú Å©±â°¡ º¯ÇÏ´Â ½ºÆ®¸µÀ» ´Ù·ç±â À§ÇÑ StringBufferŬ·¡½º°¡ µé¾î°¡ ÀÖÀ¸¸ç, SystemÀ̶ó´Â Ŭ·¡½º°¡ µé¾î°¡ À־ ÀϹÝÀûÀÎ ÀÔÃâ·Â¿¡ °ü·ÃµÈ ¸Þ½îµåµéÀÌ ¸ð¾ÆÁ® ÀÖ´Ù. ±×¸®°í ¼öÇÐÀûÀÎ ÇÔ¼öµéÀ» Çѵ¥ ¸ð¾Æ³õÀº Math¶ó´Â Ŭ·¡½º°¡ À־ ¿©·¯ °¡Áö ¼öÇÐÇÔ¼öµéÀ» »ç¿ëÇÒ ¼ö°¡ ÀÖ´Ù. ¶ÇÇÑ ¾²·¹µå 󸮸¦ À§ÇÑ Thread Ŭ·¡½º°¡ µé¾î°¡ ÀÖ´Ù. ½Ã½ºÅÛ ¸í·É¾îµéÀ» ½ÇÇà½Ã۱â À§ÇÑ RumtimeŬ·¡½º µîÀÌ Á¦°øµÇ¾î¼­ ÀÚ¹Ù ¾îÇø®ÄÉÀ̼dz»¿¡¼­ ´Ù¸¥ ÇÁ·Î±×·¥µéÀ» È£ÃâÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù. ´ÙÀ½Àº ÁÖ¿äÇÑ Å¬·¡½ºµé¿¡ ´ëÇÑ ¼³¸íÀÌ´Ù.

  • String and StringBuffer

    String Ŭ·¡½º´Â ÇÁ·Î±×·¥ ³»¿¡¼­ ±× ³»¿ëÀÌ º¯ÇÏÁö ¾Ê´Â ¹®ÀÚ¿­À» ´Ù·ê ¶§ »ç¿ëÇϸç, StringBuffer´Â ¹®ÀÚ¿­ÀÇ ³»¿ëÀÌ º¯°æµÇ´Â °æ¿ì¿¡ »ç¿ëµÇ¾îÁø´Ù. ´ÙÀ½Àº String/StringBuffer Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ¸¸µå´Â ¹æ¹ýÀÌ´Ù.

    String  s1 = new String("WWW-KR");
    String s2 = new String(" 3rd Workdshop");
    StringBuffer sb = new StringBuffer("Welcome!");
    

    ´ÙÀ½Àº String/StringBufferÀÇ »ç¿ë¹ýÀ» ³ªÅ¸³»´Â ¿¹ÀÌ´Ù.
    class Reverse{
     public static String reverse(String src) {
     int i, len = src.length();
     StringBuffer dest=new StringBuffer(len);
     for (i=(len-1); i >=0; i--)
      dest.append(src.charAt(i));
     }
     return dest.toString();
     }
    }
    

  • Math

    Math Ŭ·¡½º´Â ´Ù¸¥ Ŭ·¡½ºµé°ú´Â ´Þ¸® ¸ðµç ¸Þ½îµå¿Í º¯¼öµéÀÌ staticÀ¸·Î ¼±¾ðµÇ¾îÁ® ÀÖ´Ù. µû¶ó¼­ new ¿¬»êÀÚ¸¦ ÅëÇØ¼­ ÀνºÅϽº¸¦ »õ·ÎÀÌ ¸¸µé ¼ö°¡ ¾ø´Ù. Math Ŭ·¡½º¿¡¼­ Áö¿øÇÏ´Â ¼öÇнÄÀ¸·Î´Â abs, sin, cos, tan, asin, acos, atan, atan2, exp, log, sqrt, ceil, floor, rint, pow, round, random, max, minÀÌ ÀÖÀ¸¸ç, Math.E¿Í Math.PI°¡ Á¦°øµÈ´Ù.

    import java.lang.*;
    import java.io.*;
    
    class MathTest{
     public static void main(String args[]) 
        {
      int i;
      i = Math.max((int)25, (int)12);
    
      double rnd;
      rnd =Math.random();
      
      i  = Math.pow((doubel)3, (double)4);
     }
    }
    

  • Runtime

    Runtime Ŭ·¡½º´Â ½Ã½ºÅÛ ¸í·É¾î¸¦ ¼öÇàÇϴµ¥ »ç¿ëµÇ¾îÁø´Ù. »ç¿ë¹ýÀº ´ÙÀ½°ú °°´Ù.
    import java.lang.Runtime;
    import java.io.*;
    
    class RunNote{
     public static void main(String args[]) 
        {
      try
      {
       Runtime rt=Runtime.getRuntime();
       rt.exec("notepad"); 
      } catch (IOException e)
      {
       System.out.println("Error!");
      }
     }
    }
    


    5. ÀÚ¹Ù ÀÔÃâ·Â ÆÐŰÁö

               java.io.File  
               java.io.FileDescriptor
               java.io.InputStream 
                      java.io.ByteArrayInputStream 
                      java.io.FileInputStream 
                      java.io.FilterInputStream 
                           java.io.BufferedInputStream 
                           java.io.DataInputStream (implements java.io.DataInput) 
                           java.io.LineNumberInputStream 
                           java.io.PushbackInputStream 
                      java.io.PipedInputStream 
                      java.io.SequenceInputStream 
                      java.io.StringBufferInputStream
               java.io.OutputStream 
                      java.io.ByteArrayOutputStream 
                      java.io.FileOutputStream 
                      java.io.FilterOutputStream 
                           java.io.BufferedOutputStream 
                           java.io.DataOutputStream (implements java.io.DataOutput) 
                           java.io.PrintStream 
                      java.io.PipedOutputStream 
               java.io.RandomAccessFile (implements java.io.DataOutput, java.io.DataInput)
               java.io.StreamTokenizer 
    


    ÀÚ¹Ù ÀÔÃâ·Â ÆÐŰÁö´Â C++ÀÇ iostreams°ú À¯»çÇÑ ±¸Á¶·Î ¼³°èµÇ¾îÁ® ÀÖ´Ù. ÀÌ ¾È¿¡´Â ÆÄÀÏÀ» ´Ù·ç±â À§ÇÑ File °ü·Ã Ŭ·¡½ºµéÀÌ µé¾î°¡ ÀÖ°í, ÀÔ·Â ½ºÆ®¸²À» ´Ù·ç´Â InputStream°ü·Ã Ŭ·¡½ºµé, Ãâ·Â ½ºÆ®¸²À» ´Ù·ç´Â OutputStreamµîÀÌ µé¾î°¡ ÀÖ´Ù. ¶ÇÇÑ ·£´ý ÆÄÀÏ ¾ï¼¼½º¸¦ À§ÇÑ RamdonAccessFileÀ̶ó´Â Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù. ¶ÇÇÑ ½ºÆ®¸²¿¡¼­ ÅäÅ«À» »Ì¾Æ³»´Â StreamTokenizer Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù.

    ÀÚ¹Ù¿¡¼­ »ç¿ëµÇ´Â Ç¥ÁØ ÀÔÃâ·Â¹æ¹ý¿¡ ´ëÇØ¼­ »ìÆìº¸¸é ÀÌ´Â java.lang.System Ŭ·¡½º¸¦ ÅëÇØ¼­ ÀÌ·ç¾îÁø´Ù. Ç¥ÁØ ÀÔ·Â(stdin)ÀÇ °æ¿ì¿¡ À̴ Űº¸µå¸¦ ´ë»óÀ¸·Î ÇÏ´Â °ÍÀ¸·Î System.inÀÌ »ç¿ëµÇ¾îÁö¸ç ÀÌ´Â InputStreamÀÇ ÇÑ ÀνºÅϽº·Î¼­ µ¥ÀÌÅ͸¦ Àд read() ¸Þ½îµå¿Í ÀԷ½ºÆ®¸²¿¡¼­ ¸î ¹ÙÀÌÆ®¸¦ ¶Ù¾î³Ñ´Â skip() ¸Þ½îµå¸¦ Á¦°øÇÑ´Ù. Ç¥ÁØ Ãâ·Â(stdout)°ú ¿¡·¯(stderr)¿¡ ´ëÇØ¼­´Â °¢°¢ system.out°ú System.errÀÌ »ç¿ëµÇ´Âµ¥ ÀÌ´Â PrintSreamÀ» °¡Áö°í ±¸ÇöµÇ¾îÁø °ÍÀ¸·Î Å͹̳Π½ºÅ©¸° »óÀ¸·Î Ãâ·ÂÇϰԲû µÇ¾îÁ® ÀÖ´Ù. ¿©±â¿¡¼­´Â print()¿Í println()°ú °°Àº ¸Þ½îµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ÀÇ ÄÚµå´Â Ç¥ÁØ ÀÔÃâ·ÂÀ» ´Ù·ç´Â »ùÇà ÄÚµåÀÌ´Ù.

    import java.io.*;
    public class SIO
    {       
       public static void main(String args[]) 
       {
     int ch;
     while ((ch=System.in.read()) != -1)
     {
      System.out.print((char)ch);
     }
     System.out.println();
       }
    }
    

    ±× ´ÙÀ½À¸·Î File Ŭ·¡½º¿¡ ´ëÇØ¼­ »ìÆìº¸±â·Î ÇÑ´Ù. io ÆÐŰÁö¿¡ ÀÖ´Â File Ŭ·¡½º´Â ÆÄÀÏ¿¡ °üÇÑ ±âº»ÀûÀÎ Á¤º¸¸¦ Á¦°øÇØÁִ Ŭ·¡½ºÀÌ´Ù. °¡·É Å©±â³ª ¸¸µé¾îÁø ³¯Â¥ µî ÆÄÀÏ ÀÚü¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖ´Â °ÍÀ¸·Î, ÀÌ´Â ½ÇÁ¦ ÆÄÀÏ ÀÔÃâ·ÂÇϰí´Â Á÷Á¢ÀûÀÎ °ü°è°¡ ¾ø´Ù. ½ÇÁ¦ File Ŭ·¡½º¸¦ ¸¸µå´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.

    File docfile = new File("c:\doc\report.doc");
    File docfile = new File("report.doc");
    File dir = new File("c:\doc");
    

    ´ÙÀ½Àº File Ŭ·¡½ºÀÇ ÁÖ¿ä ¸Þ½îµåµé¿¡ ´ëÇØ¼­ »ìÆìº¸±â·Î ÇÑ´Ù.
    String getName()ÆÄÀÏÀÇ À̸§À» °¡Á®¿Â´Ù
    String getPath()ÆÄÀÏÀÇ °æ·Î¸¦ °¡Á®¿Â´Ù
    String getAbsolutePath()ÆÄÀÏÀÇ Àý´ë °æ·Î¸¦ °¡Á®¿Â´Ù
    String getParent()ºÎ¸ð µð·ºÅ丮¸¦ °¡Á®¿Â´Ù
    boolean canRead()ÆÄÀÏÀ» ÀÐÀ» ¼ö°¡ Àִ±⠰˻çÇÑ´Ù
    boolean canWrite()ÆÄÀÏ¿¡ ¾µ¼ö°¡ Àִ°¡¸¦ °Ë»çÇÑ´Ù
    boolean exists() ÆÄÀÏÀÌ Á¸ÀçÇÏ´Â °¡¸¦ °Ë»çÇÑ´Ù
    boolean isFile() ÆÄÀÏÀΰ¡¸¦ °Ë»çÇÑ´Ù
    boolean isDirectory()µð·ºÅ丮Àΰ¡¸¦ °Ë»çÇÑ´Ù
    boolean isAbsolute()Àý´ë °æ·Î Àΰ¡¸¦ °Ë»çÇÑ´Ù
    boolean renameTo(File dest)ÆÄÀÏ À̸§À» ´Ù¸¥ À̸§À¸·Î º¯°æÇÑ´Ù
    boolean delete() ÆÄÀÏÀ» »èÁ¦ÇÑ´Ù
    long lastModified() ÃÖ±Ù º¯°æÀÏ¿¡ ´ëÇÑ Á¤º¸¸¦ ³ªÅ¸³½´Ù
    long length()ÆÄÀÏÀÇ ±æÀÌ¿¡ ´ëÇÑ Á¤º¸¸¦ ³ªÅ¸³½´Ù
    String toString()ÆÄÀÏÀ̸§À» String ŸÀÔÀ¸·Î º¯È¯ÇÑ´Ù
    String[] list()µð·ºÅ丮ÀÇ ³»¿ëÀ» ¸®½ºÆÃÇÑ´Ù
    boolean mkdir()»õ·Î¿î µð·ºÅ丮¸¦ ¸¸µç´Ù

    ´ÙÀ½Àº ÀÔ·Â ½ºÆ®¸²¿¡ ´ëÇØ¼­ »ìÆìº¸±â·Î ÇÑ´Ù. ÀÔ·Â ½ºÆ®¸²Àº ÀÔ·Â ¼Ò½º·Î ºÎÅÍ µ¥ÀÌÅ͸¦ Àоî¿À´Âµ¥, ÀԷ¼ҽº·Î´Â ÆÄÀÏÀ̳ª ½ºÆ®¸µ ¶Ç´Â ¸Þ¸ð¸® µîÀÌ ¿Ã ¼ö ÀÖ´Ù. ¸ðµç ÀÔ·Â ½ºÆ®¸²Àº InputStream Ŭ·¡½º¿¡¼­ ÆÄ»ýµÇ¾îÁø´Ù. ´ÙÀ½Àº InputSteam¿¡¼­ Á¤ÀÇµÈ ¸Þ½îµéÀÌ´Ù.

    available()ºí·ÏÅ·ÀÌ µÇÁö ¾Ê°í ÀÐÀ» ¼ö ÀÖ´Â ¹ÙÀÌÆ®ÀÇ °³¼ö¸¦ ³Ñ°ÜÁØ´Ù
    close()ÀÔ·Â ½ºÆ®¸²À» ´Ý´Â´Ù
    mark(int)ÀÔ·Â ½ºÆ®¸²³»ÀÇ ÇöÀç À§Ä¡¿¡ Ç¥½Ã¸¦ ÇØµÐ´Ù
    markSupported()ÀÔ·Â ½ºÆ®¸²ÀÌ ¸¶Å©/¸®¼ÂÀ» Áö¿øÇÏ´Â °¡¸¦ ÆÇº°ÇÑ´Ù
    read()ÇÑ ¹ÙÀÌÆ®ÀÇ µ¥ÀÌÅ͸¦ Àоî¿Â´Ù
    read(byte[])¹ÙÀÌÆ® ¹è¿­·Î µ¥ÀÌÅ͸¦ Àоî¿Â´Ù
    read(byte[], int offset, int length)ÁöÁ¤µÈ À§Ä¡¿¡¼­ ÁöÁ¤ÇÑ ¼ö ¸¸Å­ µ¥ÀÌÅ͸¦ Àоî¿Â´Ù
    reset()ÃÖ±Ù¿¡ ¸¶Å©µÈ À§Ä¡·Î ½ºÆ®¸²À» ÀçÀ§Ä¡½ÃŲ´Ù
    skip(long)ÁöÁ¤ÇÑ ¹ÙÀÌÆ® ¼ö¸¸Å­ ½ºÅµÇÑ´Ù

    ÁÖ¿äÇÑ InputStreamÀÇ ÆÄ»ý Ŭ·¡½ºµé¿¡ ´ëÇØ¼­ »ìÆìº¸±â·Î ÇÑ´Ù. ¸ÕÀú ÆÄÀÏ ÀÔÃâ·ÂÀ» ´Ù·ç´Â °æ¿ì¿¡´Â FileInputStreamÀ» »ç¿ëÇÑ´Ù. ÀÌ´Â ¼øÂ÷ÀûÀÎ ¹æ¹ýÀ¸·Î ÇÑ ¹ÙÀÌÆ®¾¿ ÆÄÀÏ¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ °¡Á®¿Ã ¼ö°¡ ÀÖ´Ù. ÆÄÀÏ¿¡ ´ëÇØ¼­ FileInputStreamÀ» ¿©´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.

    File  doc=new File("report.txt");
    FileInputStream docFile = new FileInputStream(doc);
    FileInputStream docfile = new FileInputStream("report.txt");
    

    À§¿Í °°Àº ¹æ¹ýÀ¸·Î »ý¼ºÇÑ ½ºÆ®¸²¿¡ ´ëÇÑ Àбâ´Â À§ÀÇ InputStream¿¡¼­ Á¤ÀÇÇÑ ¸Þ½îµåµéÀ» ÅëÇØ¼­ ÇÒ ¼ö°¡ ÀÖ´Ù. ÀÔ·ÂÀÌ ³¡³­ ½ºÆ®¸²¿¡ ´ëÇØ¼­´Â close() ¸Þ½îµå¸¦ ÅëÇØ¼­ ¸í½ÃÀûÀ¸·Î ½ºÆ®¸²À» ´ÝÀ» ¼öµµ ÀÖ°í ¶Ç´Â ½Ã½ºÅÛÀÇ °¡ºñÁö ÄÝ·¢ÅÍ¿¡ ÀÇÇØ¼­ ÀÚµ¿ÀûÀ¸·Î ´ÝÈ÷´Â ¹æ¹ýÀÌ ÀÖ´Ù.

    ±× ´ÙÀ½À¸·Î DataInputStreamÀÌ Àִµ¥, ÀÌ´Â FileInputStream°ú ¸Å¿ì À¯»çÇϸç, ±âº» µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î ¹Ù·Î ÀоîµéÀÏ ¼ö°¡ ÀÖÀ¸¸ç ¶óÀδÜÀ§ÀÇ ÀÔ·ÂÀ» ó¸®ÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ À̵éÀº FileInputStream°ú ¿¬µ¿Çؼ­ »ç¿ëµÇ¾îÁø´Ù. ´ÙÀ½Àº DataInputStreamÀÇ ´ëÇ¥ÀûÀÎ ¸Þ½îµåµéÀÇ ÇüÅÂÀÌ´Ù.

    readByte()
    readChar()
    readShort()
    readInt()
    readLong()
    readLine()
    

    ´ÙÀ½Àº FileInputStream°ú DataInputStreamÀ» ¿¬µ¿Çؼ­ »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.

    import java.io.*;
    public class List 
    {       
          public static void main(String args[]) 
          {
                  FileInputStream in = null;
                  String   line;
           int linenum=0;
    
                    try 
                    {
                            in = new FileInputStream(args[0]);
                    } 
                    catch (Throwable e) 
                    {
                            System.out.println("Usage: java List file");
                            System.exit(1);
                    }
    
                    DataInputStream dis = new DataInputStream(in);
    
                    // End-of-File is -1, but in this case as long as the
                    // string returned is not null, continue
                    try 
                    {
                            while ((line = dis.readLine()) != null) 
                                    System.out.println(++linenum+": "+line);
                            in.close();
                    }
                    catch(IOException e)
                    {
                            System.out.println("I/O Error");
                            System.exit(1);
                    }
            }
    }
    

    ´ÙÀ½Àº ±âŸ ÀÔ·Â ½ºÆ®¸²¿¡ ´ëÇÑ °£·«ÇÑ »ç¿ë¿ëµµ¸¦ ³ªÅ¸³½ °ÍÀÌ´Ù.

    SequenceInputStream¿©·¯°³ÀÇ ÀÔ·Â ½ºÆ®¸²µéÀ» ÇϳªÀÇ ½ºÆ®¸²À¸·Î ó¸®ÇÏ´Â °æ¿ì
    PipedInputStreamÆÄÀÌÇÁ¸¦ ÅëÇØ¼­ µ¥ÀÌÅ͸¦ Àоî¿À´Â °æ¿ì
    (ÀϹÝÀûÀ¸·Î PipedOutputStream°ú ¿¬µ¿µÇ¾î¼­ »ç¿ëµÇ¾îÁø´Ù)
    ByteArrayStreamBuffer¹ÙÀÌÆ® ¹è¿­(¹öÆÛ)·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àоî¿À´Â °æ¿ì
    StringBufferInputStream StringBuffer·Î ºÎÅÍ µ¥ÀÌÅ͸¦ Àоî¿À´Â °æ¿ì

    Ãâ·Â ½ºÆ®¸²¿¡ ´ëÇØ¼­ »ìÆìº¸±â·Î ÇÑ´Ù. Ãâ·Â ½ºÆ®¸²ÀÇ °æ¿ì¿¡´Â ÀÔ·Â ½ºÆ®¸²°ú ±× ±¸¼ºÀÌ À¯»çÇÏ´Ù. ¸ðµç Ãâ·Â ½ºÆ®¸²µéÀº OutputStreamÀ¸·Î ºÎÅÍ ÆÄ»ýµÇ¾îÁø´Ù.

    ´ÙÀ½Àº OutputStreamÀÇ ±âº»ÀûÀÎ ¸Þ½îµåµéÀÌ´Ù.

    close()½ºÆ®¸²À» ´Ý´Â´Ù
    flush()½ºÆ®¸²ÀÇ ³»¿ëÀ» Áö¿î´Ù
    write(int)ÇÑ ¹ÙÀÌÆ®¸¦ Ãâ·ÂÇÑ´Ù.
    write(byte[])¿©·¯ ¹ÙÀÌÆ®¸¦ ½ºÆ®¸²¿¡ Ãâ·ÂÇÑ´Ù.
    write(byte[], int offset, int len)¹ÙÀÌÆ® ¹è¿­³»¿¡ ÁöÁ¤µÈ À§Ä¡¿¡ ÁöÁ¤ÇÑ
    Å©±â¸¸Å­À» ½ºÆ®¸²¿¡ Ãâ·Â ÇÑ´Ù.

    ÆÄÀÏ Ãâ·Â½Ã¿¡´Â FileOutputStreamÀ» »ç¿ëÇϴµ¥, ÀÌ´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î Á¤ÀÇÇÑ´Ù.

    FileOutputStream fout = new FileOutputStream("result.rpt");
    

    DataInputStream¿¡ ´ëÀÀµÇ´Â °ÍÀ¸·Î DataOutputSteamÀÌ ÀÖ´Ù. DataOutputSteamÀÇ ÁÖ¿ä ¸Þ½îµéµéÀ» »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.

    writeBoolean(boolean) 
    writeByte(int) 
    writeBytes(String) 
    writeChar(int) 
    writeChars(String) 
    writeDouble(double) 
    writeFloat(float) 
    writeInt(int) 
    writeLong(long) 
    writeShort(int) 
    

    ¸¶Áö¸·À¸·Î RandomAccessFile Ŭ·¡½º¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸±â·Î ÇÑ´Ù. ¸ÕÀú RandomAccessFileÀÇ ÀνºÅϽº¸¦ ¸¸µå´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.

    RandomAccessFile rdnfile = new RandomAccessFile("\doc\score.db","rw");
    

    À§ÀÇ ÆÄÀÏ »ý¼ºÀÚÀÇ µÎ ¹øÂ° ÀÎÀÚ´Â ¸ðµå¸¦ ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î "r"¸¸ »ç¿ëÇϸé Àбâ Àü¿ë ¸ðµåÀÓÀ» ³ªÅ¸³»°í, "rw"´Â Àбâ¿Í ¾²±â°¡ µ¿½Ã¿¡ °¡´ÉÇÏ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ´ÙÀ½Àº RandomAccessFileÀÇ ÁÖ¿ä ¸Þ½îµåµéÀÌ´Ù.

    long getFilePointer()ÇöÀçÀÇ ÆÄÀÏ Æ÷ÀÎÅÍÀÇ À§Ä¡¸¦ ¸®ÅÏÇÑ´Ù
    void seek(long pos)ÁÖ¾îÁø À§Ä¡·Î ÆÄÀÏ Æ÷ÀÎÅ͸¦ À̵¿½ÃŲ´Ù
    long length()ÆÄÀÏÀÇ Å©±â¸¦ ¸®ÅÏÇϸ鼭 ÆÄÀÏ Æ÷ÀÎÅ͸¦ ÆÄÀÏÀÇ ¸¶Áö¸·À¸·Î ¿Å±ä´Ù

    6. ÀÚ¹Ù ³×Æ®¿öÅ© ÆÐŰÁö

               java.net.ContentHandler
               java.net.DatagramPacket 
               java.net.DatagramSocket
               java.net.InetAddress
               java.net.ServerSocket 
               java.net.Socket 
               java.net.SocketImpl
               java.net.URL 
               java.net.URLConnection 
               java.net.URLEncoder 
               java.net.URLStreamHandler
    

    ÀÚ¹Ù ³×Æ®¿÷Å© ÆÐŰÁö¿¡´Â ÀϹÝÀûÀÎ TCP/IP ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱâ À§ÇÑ Socket Ŭ·¡½º¿Í Datagram Ŭ·¡½ºµéÀÌ Á¸ÀçÇØ¼­ UDP ¼ÒÄϰú ÆÐŶÀ» ´Ù·ê ¼ö Àִ Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù. ¶ÇÇÑ À¥ »óÀÇ ¸®¼Ò½ºµéÀ» ´Ù·ç±â À§ÇÑ URLÀ̶ó´Â Ŭ·¡½º°¡ À־ URL·Î Ç¥±âµÇ´Â À¥ °´Ã¼µéÀ» ¼Õ½±°Ô ´Ù·ê ¼ö°¡ ÀÖ´Ù.

    ¸ÕÀú URL Ŭ·¡½º¿¡ ´ëÇØ¼­ »ìÆìº¸¸é ÀÌ´Â À¥ »óÀÇ ¸®¼Ò½º¸¦ °¡¸®Å°´Â °´Ã¼·Î »ç¿ëµÇ´Â °ÍÀ¸·Î, À̹ÌÁö³ª ¿Àµð¿À¸¦ ´Ù·ç´Âµ¥ À־ »ç¿ëµÇ¾îÁø´Ù. ´ÙÀ½Àº URLÀ» »ç¿ëÇØ¼­ À̹ÌÁö¸¦ °¡Á®¿À´Â ¹æ¹ýÀ» ¿¹·Î ³ªÅ¸³½ °ÍÀÌ´Ù.

    URL imgsrc = new URL("http://www.server.com/image");
    Image img = getImage(imgsrc, "landscape.gif");
    

    ÀÎÅÍ³Ý ÁÖ¼Ò¸¦ ´Ù·ç±â À§ÇÑ Å¬·¡½º·Î ÀÚ¹Ù¿¡¼­´Â InetAddress¶ó´Â Ŭ·¡½º¸¦ Á¦°øÇÑ´Ù. InetAddress´Â ´ÙÀ½°ú °°Àº ¸Þ½îµéÀ» Á¦°øÇÑ´Ù.

    InetAddress getByName(String host) ÁÖ¾îÁø ½ºÆ®¸µÀ¸·Î Ç¥ÇöµÈ È£½ºÆ®¿¡ ´ëÇÑ ÀÎÅÍ³Ý ¾îµå·¹½º¸¦ ¸®ÅÏÇÑ´Ù. È£½ºÆ® À̸§ÀÌ ³ÎÀÎ °æ¿ì¿¡´Â µðÆúÆ®·Î ·ÎÄà ȣ½ºÆ®ÀÇ ÁÖ¼Ò¸¦ ¸®ÅÏÇÑ´Ù.

    InetAddress getLocalHost() ·ÎÄà ȣ½ºÆ®ÀÇ ÀÎÅÍ³Ý ¾îµå·¹½º¸¦ ¸®ÅÏÇÑ´Ù.
    String toString()ÀÎÅÍ³Ý ¾îµå·¹½º¸¦ ½ºÆ®¸µÀÇ ÇüÅ·Πº¯È¯½ÃÄÑÁØ´Ù.
    String getHostName()ÁÖ¼Ò¿¡ ÇØ´çÇϴ ȣ½ºÆ® À̸§À» Àоî¿Â´Ù.

    ´ÙÀ½Àº InetAddress Ŭ·¡½ºÀÇ »ç¿ë¿¡ ´ëÇÑ »ùÇà ÄÚµåÀÌ´Ù.

    import java.net.*;
    
    public class inet{
     public static void main(String args[])
     {
      int i;
      InetAddress localhost=null;
      try {
       localhost = InetAddress.getLocalHost();
      } catch (UnknownHostException e)
      {
       System.out.println("can not determin host");
       System.exit(0);
      }
    
      System.out.println("hostname : " + localhost.getHostName());
      System.out.println("address : " + localhost.toString());
     }
    

    ÀÚ¹Ù¿¡ À־ °¡Àå °£´ÜÇÑ TCP/IP ¼ÒÄÏ ¿¬°áÀÇ °æ¿ì¿¡ ´ÙÀ½°ú °°Àº ¸ðµ¨¿¡ µû¸¥´Ù. ¼­¹ö¿¡¼­´Â ¼ÒÄÏÀ» Çϳª ¸¸µé¾î ³õ°í ŸÀӾƿô ±â°£À» ¼³Á¤ÇØ ³õ°í Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¿¬°áÀ» ±â´Ù¸°´Ù. Ŭ¶óÀÌ¾ðÆ®¿¡¼­´Â È£½ºÆ®¿Í Æ÷Æ®¹øÈ£¸¦ ÀÌ¿ëÇØ¼­ ¿¬°áÀ» ¸ÎÀº ´ÙÀ½¿¡, Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö°£¿¡´Â InputStream°ú OutputStreamÀ» ÀÌ¿ëÇØ¼­ ¼­·Î µ¥ÀÌÅ͸¦ ÁÖ°í¹Þ´Â´Ù.

  • TCP/IP ÇÁ·Î±×·¥ÀÇ ¿¹
  • °£´ÜÇÏ°Ô TCP/IP ¼­¹ö/Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ±âº»ÀûÀÎ ±¸Á¶¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸±â·Î ÇÑ´Ù. ¸ÕÀú ¼­¹öÀÇ °æ¿ì´Â °¡Àå ±âº»ÀûÀΠƲÀ» ´ÙÀ½°ú °°´Ù.

    import java.net.*;
    import java.io.*;
    
    class TypicalServer {
     public static void main(String args[])
     {
      ServerSocket  servsc;
      Socket  sc;
      OutputStream   out;
      int  portnum=5555;
      int  timeout=500;
      try 
      {
       servsc = new ServerSocket(portnum,timeout);
      } catch (IOException e)
      {
       System.out.println("Socket Error!");
       System.exit(0);
      }
      while (true)
      {
      try 
      {
       sc=servsc.accept();
       out=sc.getOutputStream();
       // prepare sending data into the char_data
       while (no_data_to_be_sent)
        out.write(char_data);
       sc.close();
      } catch (IOException e)
      {
       System.out.println("Error!");
       System.exit(0);
      }
      }
     }
    }
    

    ´ÙÀ½Àº À§ÀÇ ÀüÇüÀûÀÎ ¼­¹ö¿¡ ´ëÀÀÇϴ Ŭ¶óÀ̾ðÆ®ÀÇ ±¸Á¶ÀÌ´Ù.

    import java.net.*;
    import java.io.*;
    
    class TypicalClient {
     public static void main(String args[])
     {
      Socket  clientsc;
      InputStream  inSc;
      int  data;
    
      try
      {
       clientsc = new Socket("jupiter.kr", 5555 );
       inSc = clientsc.getInputStream();
       while ((data=inSc.read()) != -1)
       {
        System.out.print((char)data);
       }
       System.out.println();
       clientsc.close();
      } catch (IOException e)
      {
       System.out.println("Socket Error!");
       System.exit(0);
      }
     }
    }
    

    7. °á·Ð


    Áö±Ý±îÁö ÀÚ¹Ù °³¹ß ȯ°æ¿¡¼­ Á¦°øÇØÁִ Ŭ·¡½º ÆÐŰÁöµé¿¡ ´ëÇØ¼­ »ìÆìº¸¾Ò´Ù. ½ÇÁ¦ Ŭ·¡½º Çϳª Çϳª¿¡ ´ëÇØ¼­ ´Ù·ç±âº¸´Ù´Â °¢ ÆÐŰÁöµéÀÇ Æ¯¼º°ú ÁÖ¿äÇÑ Å¬·¡½ºµéÀ» À§ÁÖ·Î »ìÆìº¸¾Ò´Ù. ½ÇÁ¦ ÀÚ¹Ù¿¡ À־ Ŭ·¡½º ÆÐŰÁöÀÇ ÀÌÇØ´Â ½ÇÁ¦ ÀÚ¹Ù ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ·Á´Â »ç¶÷µé¿¡°Ô´Â ÇʼöÀûÀÎ °ÍÀ¸·Î, ÀÚ¹Ù ÇÁ·Î±×·¥ °³¹ß Áß¿¡µµ °è¼ÓÇØ¼­ ÂüÁ¶ÇÏ¿©¾ß ÇÒ ºÎºÐÀÌ´Ù. ÇöÀç Á¦°øµÇ´Â Àڹ٠Ŭ·¡½º ÆÐŰÁö´Â ¾ÆÁÖ ±âº»ÀûÀÎ °Íµé¸¸ÀÌ µé¾î°¡ À־ ¸ÖƼ¹Ìµð¾î ÀÀ¿ëÇÁ·Î±×·¥À̳ª 3D ±×·¡ÇÈ, µ¥ÀÌÅͺ£À̽º ¿¢¼¼½º µî¿¡ ´ëÇÑ ³»¿ëµéÀº Æ÷ÇԵǾîÁ® ÀÖÁú ¾Ê´Ù. ÇÏÁö¸¸ ÀÌ·¯ÇÑ ºÎºÐµéµµ Á¶¸¸ °£¿¡ ±âº»ÀûÀΠŬ·¡½º ÆÐŰÁö·Î µé¾î°¡°Ô µÉ °ÍÀÌ´Ù.

    Âü°í ¹®Çå

    1. Arthur van Hoff, Sami Shaio, Orca Starbuck, "HOOKED on Java", Addison-Wesley, 1996
    2. Tim Ritchey, "Java!", New Riders Publishing, 1995
    3. The Java Tutorial http://java.sun.com/tutorial/index.html
    4. Nelson Yu, AWT Tutorial, 1996, http://ugweb.cs.ualberta.ca/~nelson/java/AWT.Tutorial.html
    5.JAVA Programming Training http://www.sunsales.com/java/

    1996/3/11, ÃÖÈñâ