ÆÑŰÁö¿Í Á¢±ÙÀÚ
°´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹ÖÀÇ ÇÙ½ÉÀº Àº´Ð, »ó¼Ó, ´ÙÇü¼ºÀÔ´Ï´Ù.
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 |

javabank ÆÑŰÁö¿¡ Àִ Ŭ·¡½º ÆÄÀÏÀº ¸ðµÎ Ŭ·¡½º ¼±¾ðºÎ¿¡ public À¸·Î Á¢±ÙÀÚ°¡ ÁöÁ¤µÇ¾î ÀÖ½À´Ï´Ù.
±×·¸´Ù¸é Bank, Customer, Account Ŭ·¡½º´Â ¸ðµç ÆÑŰÁö¿¡¼ ÂüÁ¶ °¡´ÉÇÕ´Ï´Ù.
Áï, example ÆÑŰÁö¿¡ ÀÖ´Â BankSystem Ŭ·¡½º¿¡¼ javabank ÆÑŰÁöÀÇ ¸ðµç Ŭ·¡½ºÀÇ °´Ã¼¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ ȹµæÇÒ ¼ö ÀÖ´Ù´Â ¾ê±âÀÔ´Ï´Ù.
´ÙÀ½Àº Bank, Customer, Account Ŭ·¡½º°¡ 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 ¶ó¸é
Á¢±ÙÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÚ¹ÙÀÇ Á¢±ÙÀÚ´Â OOPÀÇ Àº´Ð¿¡ °üÇÑ ³»¿ëÀÔ´Ï´Ù.
Âü°í·Î ¾Æ·¡´Â ÀÚ¹Ù¿¡¼ "ÀÛÀº ÀǹÌÀÇ Àº´Ð"À̶ó°í ºÒ¸³´Ï´Ù.
- ¸â¹öº¯¼ö¸¦ private ·Î ¼±¾ð
- private ¼±¾ðµÈ ¸â¹öº¯¼ö¿¡ ´ëÇÑ setters, getters Áß ¼³°è»ó ÇÊ¿ä¾ø´Â ¸Þ¼Òµå´Â »èÁ¦
Ŭ·¡½º¸¦ ¼³°èÇÒ ¶§´Â "ÀÛÀº ÀǹÌÀÇ Àº´Ð" À» ±â°èÀûÀ¸·Î¶óµµ µû¸£µµ·Ï ÇÕ´Ï´Ù.
- ´ÙÀ½ °Á : »ó¼Ó
- ÀÌÀü °Á : ¿¬»êÀÚ, if¹®°ú ¹Ýº¹¹®
