* ȸ¿ø°¡ÀÔ * ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£ ã±â   ID PW
Last Modified : 2008.09.15

ÆÑŰÁö¿Í Á¢±ÙÀÚ

°´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹ÖÀÇ ÇÙ½ÉÀº Àº´Ð, »ó¼Ó, ´ÙÇü¼ºÀÔ´Ï´Ù.

OOPÀÇ ÇÙ½É

1. Àº´Ð
2. »ó¼Ó
3. ´ÙÇü¼º

Áö±ÝºÎÅÍ´Â °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î¼­ÀÇ ÀÚ¹ÙÀÇ Æ¯Â¡¿¡ °üÇÑ ³»¿ëÀÔ´Ï´Ù.

ÆÑŰÁö(Package)

ÆÑŰÁö´Â ¸» ±×´ë·Î ²Ù·¯¹ÌÀÔ´Ï´Ù.
ÀÚ¹Ù¿¡¼­´Â ºñ½ÁÇÑ ±â´ÉÀ̳ª ºñ½ÁÇÑ ¼º°ÝÀ» °¡Áø Ŭ·¡½ºµéÀ» °ü¸®Çϱâ À§Çؼ­ ÆÑŰÁö¸¦ Á¦°øÇÕ´Ï´Ù.
»ç¹«½Ç¿¡¼­ ¼­·ù¸¦ Á¤¸®ÇÒ ¶§ ¾÷¹«¿¡ µû¶ó °¢°¢ÀÇ ¼­·ùö¿¡ º¸°üÇÏ´Â °Í°ú ¸¶Âù°¡ÁöÀÔ´Ï´Ù.

package javabank;

class Account {
  String accountNum;
  long balance;

  void deposit( long amt ) {
    balance = balance + amt;
  }

  void withdraw( long amt ) {
    balance = balance - amt;
  }

  long getBalance() {
    return balance;
  }
  
  public static void main(String[] args) {
    System.out.println("ÆÑŰÁö Å×½ºÆ®");
  }
  
}

Account Ŭ·¡½º´Â ÀÌÁ¦ javabank ¶õ ÆÑŰÁö¿¡ ¼ÓÇÏ°Ô µÇ¾ú½À´Ï´Ù.
ÆÑŰÁö¸¦ Á¤ÇØÁØ Å¬·¡½º¸¦ ÄÄÆÄÀÏ ÇÒ ¶§´Â ¹Ýµå½Ã -d ¶õ ¿É¼ÇÀ» ÁÖ¾î Ŭ·¡½º ÆÄÀÏÀÌ »ý±æ µð·ºÅ丮¸¦ ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.
¸¸¾à -d ¿É¼ÇÀ» »ý·«ÇÏ¸é ÆÑŰÁö°¡ Àû¿ëµÇÁö ¾Ê½À´Ï´Ù.
-d ´ÙÀ½¿¡ ÇÑ Ä­ ¶ç°í ³ª¿À´Â µð·ºÅ丮´Â »ý¼ºµÉ Ŭ·¡½º ÆÄÀÏÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
¿¹Á¦¸¦ ½ÇÇàÇϱâÀü¿¡ ¾Æ·¡¿Í °°Àº µð·ºÅ丮 ±¸Á¶¸¦ °®µµ·Ï ÇÕ´Ï´Ù.

bin µð·ºÅ丮´Â ÄÄÆÄÀÏµÈ Å¬·¡½º ÆÄÀÏÀÌ À§Ä¡ÇÒ °÷ÀÔ´Ï´Ù.
src µð·ºÅ丮´Â ÀÚ¹Ù ¼Ò½º ÆÄÀÏÀÌ À§Ä¡ÇÒ °÷ÀÔ´Ï´Ù.
¼Ò½º ÆÄÀÏ¿¡ ÆÑŰÁö°¡ ÀÖ´Ù¸é src ¿¡ ÇØ´çÇÏ´Â ÆÑŰÁö¸íÀ¸·Î µð·ºÅ丮¸¦ ¸¸µé¾î ¼Ò½º¸¦ ±×°÷¿¡ À§Ä¡½ÃŰ°í °ü¸®Çϵµ·Ï ÇϰڽÀ´Ï´Ù.

C:\javaApp\bank\src\javabank>javac -d ../../bin Account.java

C:\javaApp\bank\src\javabank>

À§¿Í °°ÀÌ ÄÄÆÄÀÏ ÇÑ ´ÙÀ½¿¡ C:\javaApp\bank\bin µð·ºÅ丮·Î À̵¿Çؼ­ Account.class ÆÄÀÏÀÌ »ý°å´ÂÁö È®ÀÎÇϰڽÀ´Ï´Ù.

C:\javaApp\bank\bin>dir
 C µå¶óÀ̺êÀÇ º¼·ý: S3A2219D002
 º¼·ý ÀÏ·Ã ¹øÈ£: 4CBA-0648

 C:\javaApp\javabank\bin µð·ºÅ͸®

2008-03-07  ¿ÀÈÄ 12:06    <DIR>          .
2008-03-07  ¿ÀÈÄ 12:06    <DIR>          ..
2008-03-07  ¿ÀÈÄ 12:06    <DIR>          javabank
               0°³ ÆÄÀÏ                           0 ¹ÙÀÌÆ®
            3°³ µð·ºÅ͸®   12,990,201,856 ¹ÙÀÌÆ® ³²À½

C:\javaApp\bank\bin>

Account.class ÆÄÀÏÀÌ bin µð·ºÅ丮¿¡ º¸ÀÌÁö ¾Ê°í ´ë½Å javabank ¶ó´Â µð·ºÅ丮°¡ »ý°å½À´Ï´Ù.
±×·³ Account.class ÆÄÀÏÀº ¾îµð¿¡ ÀÖÀ»±î¿ä?
Account.class ÆÄÀÏÀº C:\javaApp\bank\bin\javabank µð·ºÅ丮¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

ÀÌÁ¨ ÆÑŰÁö°¡ Àû¿ëµÈ Ŭ·¡½º ÆÄÀÏÀ» ½ÇÇàÇÕ´Ï´Ù.

C:\javaApp\bank\bin>java javabank.Account
ÆÑŰÁö Å×½ºÆ®
C:\javaApp\bank\bin>

¿ì¸®´Â Accont.java ¸¦ ÄÄÆÄÀÏÇÒ ¶§ d¿É¼ÇÀ¸·Î bin µð·ºÅ丮¸¦ ÁöÁ¤Çß½À´Ï´Ù.
Áï, bin µð·ºÅ丮¿¡ Ŭ·¡½º ÆÄÀÏÀÌ »ý±ä °Ì´Ï´Ù.
»ç½Ç bin µð·ºÅ丮¿¡´Â ÆÑŰÁö¸íÀ¸·Î ÁöÁ¤ÇØÁØ javabank ¶õ µð·ºÅ丮 ¹Û¿¡´Â ¾øÁö¸¸ JVM Àº javabank.Account.class ÆÄÀÏÀÌ bin µð·ºÅ丮¿¡ ÀÖ´Ù°í ÀÌÇØÇÕ´Ï´Ù.
ÆÑŰÁö°¡ Àû¿ëµÈ Ŭ·¡½º¿¡ ´ëÇØ¼­´Â ÆÑŰÁö¸í.Ŭ·¡½º¸íÀÌ ¿ÂÀüÇÑ Å¬·¡½º¸íÀÔ´Ï´Ù.
ÀÌ »ç½ÇÀ» Á¤È®È÷ ÀÌÇØÇØ¾ß import ¹®ÀåÀ» ÀÌÇØÇÒ ¼ö ÀÖ½À´Ï´Ù.

Á¢±ÙÀÚ¿Í Àº´Ð

Àº´ÐÀÇ ¸ô¶óµµ µÇ´Â ºÎºÐÀ» °¨Ãß´Â °ÍÀÔ´Ï´Ù.
Àº´ÐÀÌ Àß »ç¿ëµÇ¾ú´Ù¸é ÇÁ·Î±×·¥À» »¡¸® ÆÄ¾ÇÇÒ ¼ö ÀÖ°Ô µÇ¹Ç·Î »ý»ê¼ºÀ» ³ôÀÏ ¼ö ÀÖ½À´Ï´Ù.
¶ÇÇÑ ¾Ë¾Æ¾ß µÉ ³»¿ëÀÌ ÁÙ¾îµå´Ï À¯Áöº¸¼ö¿¡µµ À¯¸®ÇÏ°Ô µË´Ï´Ù.

°´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹ÖÀº °´Ã¼¿Í °´Ã¼°¡ ¼­·Î Åë½ÅÇϸ鼭 ÀÛµ¿ÇÕ´Ï´Ù.
Åë½ÅÇÑ´Ù´Â °ÍÀº °´Ã¼ ¼­·Î°£ÀÇ »ç¿ë¹ý(¸â¹öº¯¼ö, ¸â¹ö¸Þ¼Òµå)À» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù.
Á¢±ÙÀÚ´Â ÀÌ »ç¿ë¹ý(¸Å´º¾ó)À» °£´ÜÇÏ°Ô ÇØÁÖ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù.

Á¢±ÙÀÚ´Â °´Ã¼°¡ ´Ù¸¥ °´Ã¼ÀÇ ·¹ÆÛ·±½º¸¦ ȹµæÇÒ ¼ö ÀÖ´ÂÁö, ¸¸¾à ȹµæÇÒ ¼ö ÀÖ´Ù¸é ÇØ´ç °´Ã¼ÀÇ ¸â¹ö´Â ¾îµð±îÁö Á¢±ÙÇÒ ¼ö ÀÖ´ÂÁö¸¦ Á¦¾îÅä·Ï ÇÏ´Â 2´Ü°è Á¢±Ù Á¦¾î¸¦ Á¦°øÇÕ´Ï´Ù. 1´Ü°è Á¢±Ù Á¦¾î´Â Á¢±ÙÀÚ°¡ Ŭ·¡½º ¼±¾ðºÎ¿¡ ¾²ÀÏ ¶§ÀÔ´Ï´Ù.

1´Ü°è Á¢±Ù Á¦¾î : Á¢±ÙÀÚ°¡ Ŭ·¡½º ¼±¾ðºÎ¿¡ ¾²ÀÏ °æ¿ì
public ¸ðµç ÆÑŰÁöÀÇ °´Ã¼¿¡¼­ ÂüÁ¶°¡´É
default °°Àº ÆÑŰÁö³»ÀÇ °´Ã¼¸¸ ÂüÁ¶ °¡´É
Ŭ·¡½º ¼±¾ðºÎ ¾Õ¿¡ Á¢±ÙÀÚ¸¦ ¸í½ÃÇÏÁö ¾Ê´Â °æ¿ì default

PUBLIC Á¢±ÙÀÚ ±×¸²
javabank ÆÑŰÁö¿¡ Àִ Ŭ·¡½º ÆÄÀÏÀº ¸ðµÎ Ŭ·¡½º ¼±¾ðºÎ¿¡ public À¸·Î Á¢±ÙÀÚ°¡ ÁöÁ¤µÇ¾î ÀÖ½À´Ï´Ù.
±×·¸´Ù¸é Bank, Customer, Account Ŭ·¡½º´Â ¸ðµç ÆÑŰÁö¿¡¼­ ÂüÁ¶ °¡´ÉÇÕ´Ï´Ù.
Áï, example ÆÑŰÁö¿¡ ÀÖ´Â BankSystem Ŭ·¡½º¿¡¼­ javabank ÆÑŰÁöÀÇ ¸ðµç Ŭ·¡½ºÀÇ °´Ã¼¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ ȹµæÇÒ ¼ö ÀÖ´Ù´Â ¾ê±âÀÔ´Ï´Ù.

´ÙÀ½Àº Bank, Customer, Account Ŭ·¡½º°¡ default Á¢±ÙÀÚ¸¦ °¡Áú ¶§ÀÔ´Ï´Ù.
Default Á¢±ÙÀÚ ±×¸²
´Ù¸¥ ÆÑŰÁö¿¡ ÀÖ´Â BankSystem Ŭ·¡½º¿¡¼­´Â Bank, Customer, Account Ŭ·¡½º°¡ º¸ÀÌÁö ¾Ê½À´Ï´Ù.
µû¶ó¼­ BankSystem ¼Ò½º¿¡¼­ Bank, Customer, Account °´Ã¼¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ ¾òÀ¸·Á°í Çϸé ÄÄÆÄÀÏ ¿¡·¯¸¦ ¸¸³ª°Ô µË´Ï´Ù.

´ÙÀ½Àº 2´Ü°è Á¢±Ù Á¦¾î¿¡ °üÇÑ ³»¿ëÀÔ´Ï´Ù.
ÀÏ´Ü 1´Ü°è Á¢±Ù Á¦¾î´Â Åë°úÇß´Ù´Â °¡Á¤À» ÇÏ°í ³»¿ëÀ» º¸½Ã±â ¹Ù¶ø´Ï´Ù.

2´Ü°è Á¢±Ù Á¦¾î : Á¢±ÙÀÚ°¡ ¸â¹ö ¼±¾ðºÎ¿¡ ¾²ÀÏ °æ¿ì
public ¸ðµç ÆÑŰÁöÀÇ °´Ã¼¿¡¼­ Á¢±Ù °¡´É
protected °°Àº ÆÑŰÁöÀÇ °´Ã¼¿¡¼­ Á¢±Ù °¡´É
´Ù¸¥ ÆÑŰÁö¿¡ ÀÖ´Â ÀÚ½Ä °´Ã¼°¡ ºÎ¸ðÀÇ ÀÌ Á¢±ÙÀÚ·Î ÁöÁ¤µÈ ¸â¹ö´Â Á¢±Ù °¡´É
default °°Àº ÆÑŰÁö ³»ÀÇ °´Ã¼¸¸ Á¢±Ù °¡´É
private ÇØ´ç °´Ã¼³»¿¡¼­¸¸ Á¢±Ù °¡´É, ¿ÜºÎ¿¡¼­´Â °ø°³µÈ ¸Þ¼Òµå¸¦ ÅëÇØ¼­¸¸ Á¢±ÙÀ» Çã¿ë

Á¢±ÙÀڴ Ŭ·¡½º ¼±¾ðºÎ¿¡ ¾²ÀÎ 1´Ü°è Á¢±Ù Á¦¾î°¡ Åë°úµÇ¸é µÎ¹øÂ°·Î ÇØ´ç °´Ã¼ÀÇ ¸â¹ö¿¡ ´ëÇØ¼­ Àû¿ëµË´Ï´Ù.
¸â¹ö¿¡ Àû¿ëµÇ´Â °¡Àå ½¬¿î Á¢±ÙÀÚ´Â public °ú private ÀÔ´Ï´Ù.
¸â¹öÀÇ Á¢±ÙÀÚ°¡ public ÀÌ¸é ¸ðµç ÆÑŰÁöÀÇ °´Ã¼¿¡¼­ Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù.
¸â¹öÀÇ Á¢±ÙÀÚ°¡ private ÀÌ¸é ¸â¹ö¿¡ Á¢±ÙÇÒ ¼ö ¾ø½À´Ï´Ù.
private ¸â¹ö¿¡ Á¢±ÙÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù¸é ÇØ´ç ¸â¹ö¿¡ Á¢±ÙÇÏ´Â °ø°³µÈ ¸â¹ö ¸Þ¼Òµå¸¦ ¸¸µé¾î ÁÖ¾î¾ß ÇÕ´Ï´Ù.
default Á¢±ÙÀÚ´Â °°Àº ÆÑŰÁö¿¡ ÀÖ´Â °´Ã¼¸¸ÀÌ Á¢±ÙÀÌ °¡´ÉÇÕ´Ï´Ù.
protected ´Â default Á¢±ÙÀÚº¸´Ù Á¢±Ù Çã¿ë¹üÀ§°¡ ´õ ³Ð½À´Ï´Ù.
ÀÏ´Ü default ó·³ °°Àº ÆÑŰÁöÀÇ °´Ã¼´Â Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù.
µ¡ºÙ¿©Áö´Â Á¢±Ù Çã¿ë ³»¿ëÀº »ó¼Ó°ú °ü·ÃµÇ¾î ÀÖ´Â Á» Ưº°ÇÑ °æ¿ìÀÔ´Ï´Ù.
»ó¼Ó °ü°è¿¡ ÀÖ´Â ÀÚ½Ä °´Ã¼°¡ ´Ù¸¥ ÆÑŰÁö¿¡ ¼ÓÇÑ ºÎ¸ðÀÇ ¸â¹ö¿¡ Á¢±ÙÇÒ ¶§, ¸¸¾à ÀÌ ºÎ¸ðÀÇ ¸â¹ö Á¢±ÙÀÚ°¡ protected ¶ó¸é Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù.
Protected Á¢±ÙÀÚ ¿¹ ±×¸²

ÀÚ¹ÙÀÇ Á¢±ÙÀÚ´Â OOPÀÇ Àº´Ð¿¡ °üÇÑ ³»¿ëÀÔ´Ï´Ù.
Âü°í·Î ¾Æ·¡´Â ÀÚ¹Ù¿¡¼­ "ÀÛÀº ÀǹÌÀÇ Àº´Ð"À̶ó°í ºÒ¸³´Ï´Ù.

  1. ¸â¹öº¯¼ö¸¦ private ·Î ¼±¾ð
  2. private ¼±¾ðµÈ ¸â¹öº¯¼ö¿¡ ´ëÇÑ setters, getters Áß ¼³°è»ó ÇÊ¿ä¾ø´Â ¸Þ¼Òµå´Â »èÁ¦

Ŭ·¡½º¸¦ ¼³°èÇÒ ¶§´Â "ÀÛÀº ÀǹÌÀÇ Àº´Ð" À» ±â°èÀûÀ¸·Î¶óµµ µû¸£µµ·Ï ÇÕ´Ï´Ù.