3.2 °´Ã¼»ý¼º

ÀÛ¼ºÀÚ : ÁøÀº¿µ ( 2004-07-13 )

[¸ÞÀÎ] [¸ñ·Ï]

¸ñÂ÷

3.2.1 °´Ã¼»ý¼º

¨ç °´Ã¼¸¦ »ý¼ºÇÏ´Â °ÍÀº
Ŭ·¡½º¸¦ Á¤ÀÇÇß´Ù°í Çؼ­ ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. ÀÚµ¿Â÷¸¦ ¸¸µé±â À§ÇØ ¸ÕÀú µµ¸éÀ» ¼³°èÇÏ°í , ¾ÆÆÄÆ®¸¦ Áþ±â À§Çؼ­µµ ¸¶Âù°¡Áö·Î °Ç¼³µµ¸éÀ» ¼³°èÇÏ´Â °Íó·³ ¿ì¸®°¡ ¿øÇÏ´Â °´Ã¼¸¦ »ý¼ºÇϱâ À§Çؼ­µµ µµ¸éÀ» ¼³°èÇØ¾ß ÇÑ´Ù. ±×°ÍÀÌ Áö³­ °­ÁÂÀÇ Å¬·¡½ºÀÌ´Ù. Ŭ·¡½º¸¦ ÀÌ¿ëÇؼ­ °´Ã¼¸¦ ¸Þ¸ð¸®¿¡ ¿Ã¸®´Â °ÍÀ» °´Ã¼»ý¼ºÀ̶ó ÇÑ´Ù. ÀÌ·¸°Ô ¸Þ¸ð¸®»ó¿¡ »ý¼ºµÈ Ŭ·¡½º¸¦
  • Ŭ·¡½º °´Ã¼
  • instance
¶ó°íµé ÇÑ´Ù. ¿©±â¿¡¼­´Â ÀνºÅϽº¶ó°í »ç¿ëÇÏ°Ú´Ù.

¨è °´Ã¼¸¦ »ý¼ºÇϱâ À§ÇÑ ¼ø¼­
°´Ã¼¸¦ »ý¼ºÇϱâ À§Çؼ­´Â ¾Æ·¡¿Í °°Àº ±ÔÄ¢ÀÌ ÀÖ´Ù.
  1. ÀνºÅϽº º¯¼ö ¼±¾ð
  2. °´Ã¼ »ý¼º

  1. ÀνºÅϽº º¯¼ö ¼±¾ð
      ¸â¹öº¯¼öÀÇ ¼±¾ð¿¡¼­ º¸¾Ò´ø °Íó·³ º¯¼ö¸¦ ¼±¾ðÇÏ¸é µÈ´Ù.
      Áß¿äÇÑ °ÍÀº DataType Àε¥ »ý¼ºÇÏ°í ½ÍÀº Ŭ·¡½ºÀÇ Å¸ÀÔÀ» ³Ö¾îÁÖ¸é µÈ´Ù.
      Car car = null ;
      StockAccount account = null ;

  2. °´Ã¼ »ý¼º »ý¼ºÀ̶õ ´Ü¾î°¡ óÀ½À¸·Î ³ª¿Ô´Ù. »ý¼ºÇϱâ À§Çؼ­´Â new ¶ó´Â ¿¬»êÀÚ°¡ »ç¿ëµÈ´Ù. ¾Õ¿¡¼­µµ °­Á¶ÇßÁö¸¸ ¿ÞÂÊÀÇ DataType°ú ¿À¸¥ÂÊÀÇ DataTypeÀÌ °°¾Æ¾ß ÇÑ´Ù.

      car = new Car() ;
      account = new StockAccount() ;



      °´Ã¼»ý¼ºÀ» ¼³¸íÇϸ鼭 ¾à°£ÀÇ ¸Þ¸ð¸® ±¸Á¶¿¡ ´ëÇØ ¼³¸íÇÏ·Á ÇÑ´Ù.
      ¿©·¯ºÐÀÇ ÀÌÇظ¦ µ½±â À§ÇØ ³ª¿­ÇÏ´Â ¸Þ¸ð¸® ±¸Á¶Àε¥, Á¤ÀÛ ÀÌ°ÍÀ¸·Î ÀÎÇØ µô·¹¸¶¿¡ ºüÁöÁú ¾Ê±â¸¦ ¹Ù¶ó´Â ¸¶À½ÀÌ´Ù.
      ¸Þ¼Òµå³»¿¡ ¼±¾ðµÇ´Â º¯¼öµéÀÌ ÀúÀåµÇ´Â °÷ÀÎ stack¿µ¿ª°ú °´Ã¼ÀÇ º¯¼öµéÀÌ ÀúÀåµÇ´Â heap¿µ¿ªÀÌ ÀÖ´Ù.
      • statck : ¸Þ¼Òµå³»¿¡¼­ ¼±¾ðµÇ´Â º¯¼öµéÀÌ ÀúÀå. ¸Þ¼Òµå°¡ ³¡³ª¸é °°ÀÌ ¾ø¾îÁö´Â ¿µ¿ªÀÌ´Ù.
      • heap : °´Ã¼°¡ »ý¼ºµÇ¾î º¯¼öµéÀÌ ÀúÀåµÇ´Â ¿µ¿ª. °´Ã¼°¡ ´õÀÌ»ó »ç¿ëµÇÁö ¾Ê´Â ½ÃÁ¡¿¡ GC(Garbage Collection : û¼ÒºÎ)ÀÇ ´ë»óÀÌ µÈ´Ù.

      ¨ç ÀνºÅϽº º¯¼ö¸¦ ¼±¾ðÇß´Ù°í Çؼ­ ¸Þ¸ð¸®¿¡ ¹Ù·Î »ý¼ºµÇ´Â °ÍÀº ¾Æ´Ï´Ù. ¸ÕÀú stack¿µ¿ª¿¡ carº¯¼ö°¡ Á¤Àǵǰí default°ªÀ¸·Î nullÀÌ Ã¤¿öµò´Ù.
      Car car = null ;

      ¨è new ¿¬»êÀÚ¸¦ ÀÌ¿ëÇؼ­ Ŭ·¡½ºÀÇ ³»¿ëÀ» ¸Þ¸ð¸®¿¡ ¿Ã¸°´Ù. ¹Ù·Î Heap¿µ¿ª¿¡ ÀÚ¸®¸¦ Àâ°Ô µÈ´Ù.
      new Car() ;

      ¨é Ŭ·¡½ºÀÇ ³»¿ëÀÌ ´Ù ¿Ã¶ó°£ ÈÄ ÁÖ¼Ò¹øÁö¸¦ ºÎ¿© ¹Þ°Ô µÇ´Âµ¥ ÀÌ ¹øÁö¸¦ carº¯¼ö¿¡ ´ëÀÔÇÑ´Ù.
      car = ÁÖ¼Ò¹øÁö

      ¨ê ¸¶Áö¸·À¸·Î stack¿¡ ÀÖ´Â carº¯¼ö´Â heap¿µ¿ªÀÇ °´Ã¼³»¿ëÀ» °¡¸®Å°°Ô µÈ´Ù. ±×·¡¼­ carº¯¼ö¸¦ reference º¯¼ö¶ó°íµµ ÇÑ´Ù.
      ¿©±â¿¡¼­ Áß¿äÇÑ ³»¿ëÀº carº¯¼öÀÇ ³»¿ëÀÌ´Ù. carº¯¼ö´Â °ªÀ» °¡Áö°í ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ÁÖ¼Ò¸¦ °¡Áö°í ÀÖ´Â ÂüÁ¶º¯¼ö¶ó´Â °ÍÀ» ²À ±â¾ïÇϱ⠹ٶõ´Ù.

¨é ¿¹Á¦
Car Ŭ·¡½º¸¦ »ý¼ºÇÑ ÈÄ ´Ù½Ã °´Ã¼¸¦ »ý¼ºÇØ º¸ÀÚ.
  1. Ãß»óÈ­ÇÑ´Ù.
      ¸â¹öº¯¼ö : Â÷À̸§ , Â÷ºê·£µå , »ö»ó
      ¸Þ¼Òµå : À̸§°ú ºê·£µå¿Í »ö»óÀ» Ãâ·ÂÇÏ´Â print

  2. Ŭ·¡½º·Î ±¸ÇöÇÑ´Ù.
      class Car {
              //¸â¹öº¯¼ö ¼±¾ð
              String name ; 
              String brand ;
              String color ; 
      
              //¸Þ¼Òµå ¼±¾ð
              public void print(){
                      //À̸§ , ºê·£µå , »ö»ó Ãâ·ÂÇÏ´Â ³»¿ë ±¸Çö
                      System.out.println( name + " / " + brand + " / " + color  ) ; 
              }
      }
      

  3. °´Ã¼ »ý¼ºÇÑ´Ù.
    °´Ã¼¸¦ »ý¼ºÇϱâ À§ÇØ CarTest Ŭ·¡½º¸¦ ±¸ÇöÇÑ´Ù. CarTest¿¡´Â ½ÇÇàÇϱâ À§ÇÑ main() Çϳª¸¸ Á¸ÀçÇÏ¸é µÈ´Ù.
      public class CarTest {
              public static void main( String [] args ){
                      // 1. º¯¼ö ¼±¾ð
                      // 2. °´Ã¼ »ý¼º
      
                      Car car = null ; 
                      car = new Car() ; 
              }
      } 
      

      Main()´Â ¹Ýµå½Ã À§¿Í °°Àº ÇüŸ¦ ÁöÄÑ¾ß ÇÑ´Ù. jvmÀÌ ÀÌ Å¬·¡½º¸¦ ½ÇÇà½ÃÄ×À» ¶§ µû·Î ¸Þ¼Òµå¸íÀ» ÁöÁ¤ÇÏÁö ¾Ê¾Æµµ °¡Àå¸ÕÀú È£ÃâÇÏ´Â ¸Þ¼ÒµåÀ̱⠶§¹®ÀÌ´Ù. CarTest Ŭ·¡½º°¡ ½ÇÇàµÇ¸é car°´Ã¼´Â ¾Æ·¡¿Í °°ÀÌ ¸Þ¸ð¸®¿¡ ·ÎµåµÈ´Ù.





3.2.2 °´Ã¼»ç¿ë

»ý¼ºÇÑ °´Ã¼¸¦ »ç¿ëÇϱâ À§Çؼ­´Â ¾Æ·¡¿Í °°Àº ¼ø¼­°¡ ÀÖ´Ù.
  • ¹¬½ÃÀû ÃʱâÈ­
  • ¸í½ÃÀû ÃʱâÈ­

  1. Ŭ·¡½º¸¦ Á¤ÀÇÇÒ ¶§ default°ªÀ» µû·Î ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Ù¸é, ¸Þ¸ð¸® ·Îµå½Ã default°ªÀ» Á¤ÇØÁØ´Ù.
      String name ==> null
      int age ==> 0
      double salary ==> 0.0

  2. °´Ã¼¸¦ »ý¼ºÇÑ ÈÄ °³¹ßÀÚ°¡ ¸í½ÃÀûÀ¸·Î °ªÀ» ´ëÀÔÇØ ÁÙ ¼ö ÀÖ´Ù.

      car.name = "¸Å±×³Ê½º À̱Û" ;
      car.brand = "GM ´ë¿ì" ;
      car.color = "¾ÆÀ̺¸¸®" ;



  3. ¸Þ¼Òµå È£Ãâ

      car.print() ;

  4. Ŭ·¡½º Àüü Äڵ带 º¸ÀÚ
      public class CarTest {
              public static void main( String [] args ){
                      // 1. º¯¼ö ¼±¾ð
                      // 2. °´Ã¼ »ý¼º
      
                      Car car = null ; 
                      car = new Car() ; 
      
      		car.name = "¸Å±×³Ê½º À̱Û" ;
      		car.brand = "GM ´ë¿ì" ; 
      		car.color = "¾ÆÀ̺¸¸®" ; 
      
      		car.print() ; 
              }
      }
      
      °á°ú

      ---------- java ----------
      ¸Å±×³Ê½º ÀÌ±Û / GM ´ë¿ì / ¾ÆÀ̺¸¸®
      Ãâ·Â ¿Ï·á (1ÃÊ °æ°ú) - Á¤»ó Á¾·á


3.2.3 ȸ»ç »ç¿ø °´Ã¼ »ý¼º ¿¹Á¦

¨ç EmployeesTest Ŭ·¡½º ±¸Çö
È«±æµ¿ : en001 , ºÎÀå , 1000000 ÀÇ °´Ã¼ »ý¼º
°©¼øÀÌ : en002 , »ç¿ø , 700000ÀÇ °´Ã¼ »ý¼º
public class EmployeesTest {
        public static void main( String [] args ){
                Employees emp1 = null , emp2 = null ; 

                emp1 = new Employees() ; 
                emp1.empID = "en001" ; 
                emp1.name = "È«±æµ¿" ; 
                emp1.position = "ºÎÀå" ; 
                emp1.salary = 1000000 ; 

                emp2 = new Employees() ; 
                emp2.empID = "en002" ; 
                emp2.name = "°©¼øÀÌ" ; 
                emp2.position = "»ç¿ø" ; 
                emp2.salary = 700000 ; 

                emp1.print() ; 
                emp2.print() ; 
        }
}
°á°ú

---------- java ----------
È«±æµ¿´ÔÀÇ Á÷À§´ÂºÎÀåÀÌ¸ç ±Þ¿©´Â 1100000ÀÌ´Ù.
°©¼øÀÌ´ÔÀÇ Á÷À§´Â»ç¿øÀÌ¸ç ±Þ¿©´Â 800000ÀÌ´Ù.
Ãâ·Â ¿Ï·á (0ÃÊ °æ°ú) - Á¤»ó Á¾·á
Âü°í·Î Employees Ŭ·¡½º¿Í EmployeesTest Ŭ·¡½º´Â °°Àº Æú´õ¿¡ ÀÖ¾î¾ß ÇÑ´Ù.
Âü°í¹®Çå
  • Ŭ¸¯Çϼ¼¿ä ÀÚ¹Ù 2 [´ë¸²]