Home Map Index Search News Archives Links About LF
[Top Bar]
[Bottom
Bar]
[Photo of the Author] 
Jose M. Fernández  

ÇÊÀÚ¿¡°Ô ¿¬¶ôÇϱâ 
»öÀÎ
ÀÚ·áÇü, º¯¼ö, ¿¬»êÀÚ 
Á¦¾î¹® 
Ŭ·¡½º, ¸Þ¼Òµå, »ó¼Ó  

Java. µÎ¹ø°

[Ilustration]

¿ä¾à: ÀÌ ¿¬Àç ±â°í´Â ±¸Á¶Àû ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ÀüÅëÀûÀΠåÀ» º»º¸±â·Î ÇÑ´Ù. ù ¹ø° ±â°í¿¡¼­ ÀÚ¹Ù ¾ð¾îÀÇ Æ¯¼º¿¡ ´ëÇØ °£´ÜÇÑ ¼Ò°³¸¦ Çß°í, À̹ø¿¡´Â ÀÚ·áÇü, º¯¼ö, Á¦¾î¹® µîÀ» °è¼ÓÇؼ­ °øºÎÇÏ·Á°í ÇÑ´Ù. ¿©±â¿¡´Â Ŭ·¡½º(class)¶ó´Â ´ë´ÜÈ÷ Áß¿äÇÑ ÁÖÁ¦°¡ ÀÖ´Ù. Ŭ·¡½ºÀÇ °³³äÀº ÀÚ¹Ù ÇÁ·Î±×·¥ ¾ð¾îÀÇ ÇÙ½ÉÀÌ µÈ´Ù. To center the classes topic, the first part will be as ESQUEMATICA¿? as possible, due to the similarity to the rest of the programming languages.


»çÀüÀûÀÎ ³íÁ¡

¹®¹ý´ë·Î ¸»ÀÚÇϸé, ÀÚ¹Ù ÇÁ·Î±×·¥Àº ÁÖ¼®(comments), ½Äº°ÀÚ(identifiers), »ó¼ö(literals), ±¸ºÐÀÚ(separators), °ø¹é(blank spaces), Çٽɾî(key words)°¡ ¸ð¿© Çü¼ºµÈ´Ù. ÄÄÆÄÀÏ·¯´Â À¯ÀÏÇÑ Çü½ÄÀ¸·Î ÀÛ¼ºµÈ Äڵ带 ¹Þ¾Æµé¿© ¾Æ½ºÅ°(ASCII) ÄÚµå·Î¼­ ºñÆ®¼ö¸¦ 8 ºÎÅÍ 16 ±îÁö È®ÀåÇÏ°í, ¶ÇÇÑ ¶óƾ¾î°¡ ¾Æ´Ñ ¹®Àڵ鿡 ÀÏÄ¡ÇÏ´Â Å°¸Ê Å×À̺í(keymap table)À» ³ÐÈù´Ù. °ø¹é, ÅÇ(tabs), ij¸®Áö ¸®ÅÏ(carriage returns)Àº ½Éº¼ ÁýÇÕ(symbol set)¿¡ ¼ÓÇÏÁö ¾Ê±â ¶§¹®¿¡ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ Á¦°ÅµÈ´Ù. ÀÌ ¶§¹®¿¡ ÀÚ¹Ù ÇÁ·Î±×·¥À» ÀÚÀ¯·Î¿î ¾ç½ÄÀ¸·Î ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.

ÀÚ¹Ù ÁÖ¼®Àº ´ÙÀ½ÀÇ ¼¼ °¡Áö ¾ç½Ä ÁßÀÇ ÇϳªÀÏ ¼ö ÀÖ´Ù:

     //comments
// ÀÌÈĺÎÅÍ ±× ÁÙ ³¡±îÁö ¹®ÀÚµéÀº ¹«½ÃµÈ´Ù.
     /* comment */
/* ¿Í */ »çÀÌÀÇ ¸ðµç ¹®ÀÚµéÀº ¹«½ÃµÈ´Ù. ÀÌ ÁÖ¼®Àº ¿©·¯ ÁÙ¿¡ °ÉÃÄ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
     /** comment **/
/* */ ÁÖ¼®°ú µ¿ÀÏÇÏÁö¸¸, ¼±¾ð ÀÌÀü¿¡¼­¸¸ »ç¿ëµÇ¾îÁø´Ù. javadoc µµ±¸°¡ ÀÌ°ÍÀ» »ç¿ëÇÏ¿© ÀÚµ¿ÀûÀ¸·Î ¹®¼­¸¦ »ý¼ºÇϱ⠶§¹®ÀÌ´Ù.

½Äº°ÀÚ´Â ÄÄÆÄÀÏ·¯°¡ ±×°ÍµéÀ» ½Äº°Çϵµ·Ï º¯¼ö, Ŭ·¡½º, ¸Þ¼Òµå(method)¿¡ ÁÖ¾îÁø À̸§ÀÌ´Ù. ¾ËÆĺª ¹®ÀÚ, ¼ýÀÚ, ¹ØÁÙ, ´Þ·¯ ±âÈ£ÀÇ ¾î¶² ¹®ÀÚ¿­À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.  ¼ýÀÚ·Î ½ÃÀÛÇؼ­´Â ¾È µÈ´Ù.

ÀÚ¹Ù´Â ±¸ºÐÀڷμ­ ¸î °³ÀÇ Æ¯¼öÇÑ ¹®ÀÚ¸¦ »ç¿ëÇÑ´Ù. °¡Àå ÀÚÁÖ ¾²ÀÌ´Â °ÍÀº ; ±¸ºÐÀÚÀÌÁö¸¸, ¶ÇÇÑ ´ÙÀ½À» ´õ ¾Ë¾Æ º¸ÀÚ:

±âÈ£ Çؼ³
() ¸Þ¼Òµå Á¤ÀÇ¿Í È£Ã⠽à ¸Å°³º¯¼ö ¸ñ·ÏÀ» º¸À¯ÇÑ´Ù. ¶ÇÇÑ Ç¥Çö½Ä ¿ì¼± ¼øÀ§(expressions precedence)¸¦ º¯°æÇϱâ À§ÇØ »ç¿ëµÈ´Ù. ȤÀº, Á¦¾î ¹®Àå°ú ÀÚ·áÇü º¯È¯¿¡¼­ Ç¥Çö½ÄÀ» ¼ö¿ëÇÑ´Ù.
{} ÀÚµ¿ÀûÀ¸·Î ÃʱâÈ­µÇ´Â ¹è¿­(vector)ÀÇ °ªµéÀ» ¼ö¿ëÇÑ´Ù. ÄÚµå ºí·°(code block)À» ¼ö¿ëÇÑ´Ù. Ŭ·¡½º, ¸Þ¼Òµå, Áö¿ª ¿µ¿ª(local scope)°ú ÇÔ²² »ç¿ëµÈ´Ù.
[] ¸ÅÆ®¸¯½º(matrix) ÀÚ·áÇüÀ» Á¤ÀÇÇÑ´Ù. ¸ÅÆ®¸¯½º¿¡ ÀÖ´Â °ªÀ» ÂüÁ¶ÇÑ´Ù.
; ¹®Àå ±¸ºÐÀÚ.
, º¯¼ö ¼±¾ð¿¡¼­ ¿¬¼ÓÀûÀÎ ½Äº°ÀÚµéµé ±¸ºÐÇÑ´Ù. for ¹®¿¡¼­ ¹®ÀåµéÀ» ±¸ºÐÇÑ´Ù.
. ÆÐÅ°Áö(package), ÇÏÀ§ ÆÐÅ°Áö, Ŭ·¡½º ¸íĪÀ» ±¸ºÐÇÑ´Ù. ÂüÁ¶µÈ º¯¼ö·ÎºÎÅÍ º¯¼ö ¶Ç´Â ¸Þ¼Òµå¸¦ ±¸ºÐÇÑ´Ù.

Çٽɾî´Â ÀÚ¹Ù ¾ð¾î·Î »ç¿ëµÇ¾îÁö´Â ½Äº°ÀÚÀ̸ç ÀÚ¹Ù¿¡ ÀÇÇØ Á¤ÀÇµÈ ¹Ù¿Í ´Ù¸£°Ô »ç¿ëµÉ ¼ö ¾ø´Ù. ´ÙÀ½ Ç¥´Â ÀÚ¹Ù ÇٽɾîµéÀ» º¸ÀδÙ:
 

abstract double int super
boolean else interface switch
break extends long synchronized
byte false native this
byvalue final new threadsafe
case finally null throw
catch float package transient
char for private true
class goto protected try
const if public void
continue implements return while
default import short  
do instanceof static  

ÀÚ·áÇü, º¯¼ö, ¿¬»êÀÚ.

ÀÌ ½ÃÁ¡¿¡¼­ ÀÚ¹Ù ¾ð¾î´Â ¾ö°ÝÇÏ°Ô ÀÚ·áÇüÀ» Àû¿ëÇÏ´Â ¾ð¾î¶ó°í ÁÖÀåÇÏ·Á°í ÇÑ´Ù. °¢ º¯¼ö´Â ÀÚ·áÇüÀ» °¡Áö¸ç °¢ ÀÚ·áÇüÀº ²Ä²ÄÇÏ°Ô Á¤ÀǵȴÙ. ¸ðµç ´ëÀÔ¹®ÀÇ ÀÚ·áÇü ȣȯ¼ºÀÌ ¸íÈ®ÇÏ°Ô ¶Ç´Â ¸Þ¼Òµå È£Ãâ¿¡¼­ ¸Å°³º¯¼ö ±³È¯À» ÅëÇØ °Ë»çµÈ´Ù. ÀÚ·áÇü ȣȯ¼ºÀ» º¸ÀåÇϱâ À§ÇÏ¿© ÄÄÆÄÀÏ·¯´Â ¸ðµç Ç¥Çö°ú ¸Å°³º¯¼ö¸¦ Á¡°ËÇÑ´Ù.

ÀÌÀü ±â°í¿¡¼­ ÀÚ¹Ù´Â ¿ÏÀüÇÏ°Ô °´Ã¼ÁöÇâÀûÀ̶ó°í ¾ð±ÞÇß´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í, È¿À²¼ºÀ» °í·ÁÇؼ­, ÀÚ¹Ù´Â °´Ã¼°¡ ¾Æ´Ñ "´Ü¼øÇÑ" ÀÚ·áÇü ¿©´ü °³¸¦ Á¤ÀÇÇÑ´Ù. °Ô´Ù°¡, À̽ļºÀ» ÀÌÀ¯·Î, ¸ðµç ÀÚ·áÇüÀº À¯ÀÏÇÏ°Ô Á¤ÀÇµÈ ¹üÀ§¸¦ °¡Áø´Ù.

´Ü¼ø ÀÚ·áÇüÀº ³× °³·Î ¹­¾î ±¸ºÐÇÒ ¼ö ÀÖ´Ù:

ÀÚ·áÇü ¸íĪ Å©±â ¹üÀ§
Á¤¼ö long 64 -9,223,372,036,854,775,808 

9,223,372,036,854,775,807
int 32 -2,147,483,648 

2,147,483,647
short 16 -32,768 ~ 37,767
byte 8 -128 ~ 127
½Ç¼ö float 32 3.4 e-038 a 3.4 e+038
double 64 1.7 e-308 a 1.7 e+308
¹®ÀÚ char 16 Unicode
ºÎ¿ï¸° boolean   true ¶Ç´Â false

º¯¼ö:

º¯¼ö´Â ½Äº°ÀÚ¿Í ÀÚ·áÇü¿¡ ÀÇÇØ Á¤ÀǵȴÙ. ¼±ÅÃÀûÀ¸·Î, º¯¼ö¸¦ ¼±¾ðÇÏ°í µ¿½Ã¿¡ ÃʱâÈ­ ÇÒ ¼ö ÀÖ´Ù. ¾î¶² º¯¼öµçÁö ¿µ¿ª(scope)°ú ½ÃÇѼº(lifetime)À» °¡Áø´Ù. °Ô´Ù°¡, º¯¼ö´Â ¹Ýµå½Ã »ç¿ëµÇ±â Àü¿¡ Á¤ÀǵǾî¾ß ÇÑ´Ù. ÇÁ·Î±×·¥ ³»ÀÇ ¾î¶² °÷¿¡¼­³ª, ½ÉÁö¾î´Â ÃÖÃÊ·Î »ç¿ëµÇ´Â µ¿½Ã¿¡ ¼±¾ðµÉ ¼ö ÀÖ´Ù.

ÀϹÝÀûÀ¸·Î, º¯¼ö´Â ÀÌ·± ¹æ½ÄÀ¸·Î ¼±¾ðµÈ´Ù:
 

identifier type [=value] [,identifier [=value]......];

            
¿©±â¼­, "type"Àº ±âº»ÀûÀÎ ÀÚ¹Ù ÀÚ·áÇüÀ̰ųª Ŭ·¡½º, ÀÎÅÍÆäÀ̽º(interface)°¡ µÉ ¼ö ÀÖ´Ù. ¸¸ÀÏ º¯¼ö¸¦ ÃʱâÈ­ ÇÑ´Ù¸é, ±×°ÍÀÇ Ç¥Çö½ÄÀº ¹Ýµå½Ã º¯¼ö ¼±¾ð¿¡¼­ ÁöÁ¤µÈ °Í°ú ÀÏÄ¡ÇÏ´Â µ¿ÀÏÇÑ ÀÚ·áÇüÀ̰ųª ȣȯ¼ºÀÌ ÀÖ´Â ÀÚ·áÇüÀ̾î¾ß ÇÑ´Ù.

¿¹:
 

int  a = 4, b, c=7;

char c;

myclass class;

            
´ë°³, º¯¼ö°¡ ÇÑ ¿µ¿ª ³»ºÎ¿¡¼­ Á¤ÀÇµÇ¸é ¿ÜºÎ¿¡¼­ Äڵ忡 ÀÇÇØ Á¢±ÙÀÌ ºÒ°¡´ÉÇÏ´Ù ({} Áß°ýÈ£ »çÀÌÀÇ ÄÚµå ºÎºÐÀ» ¿µ¿ªÀ¸·Î Á¤ÀÇÇÑ´Ù). ÀÏ´Ü ¿µ¿ªÀ¸·ÎºÎÅÍ ¹þ¾î³ª¸é º¯¼ö´Â º¯¼ö°ªÀ» ´õ ÀÌ»ó º¸Á¸ÇÏÁö ¾Ê´Â´Ù.

´ëºÎºÐÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾îµéÀº µÎ °¡ÁöÀÇ ¿µ¿ª ¹üÁÖ¸¦ Á¤ÀÇÇÑ´Ù. Àü¿ª(global)°ú Áö¿ª(local)ÀÌ ±×°ÍÀÌ´Ù. ±×·¯³ª ÀÌ´Â ÀÚ¹Ù °´Ã¼ ÁöÇâÀû ¸ðµ¨¿¡ ÀûÇÕÇÏÁö ¾Ê´Ù. ÀÌ ¸ðµ¨¿¡ ±âÃÊÇؼ­, µÎ °³ÀÇ ÁÖ¿ä ¿µ¿ªÀº Ŭ·¡½º¿Í ¸Þ¼Òµå¿¡ ÀÇÇØ Á¤ÀǵǴ °ÍÀÌ´Ù.

ÀÚ·áÇü º¯È¯:

ºñ·Ï ÀÌ·ÐÀûÀ¸·Î´Â Çã¿ëµÇÁö ¾ÊÁö¸¸, ÀÚ¹Ù´Â ÁöÁ¤µÈ ÀÚ·áÇüÀÇ °ªÀ» ¶Ç ´Ù¸¥ ÀÚ·áÇüÀÇ º¯¼ö¿¡ ´ëÀÔÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ ±× ÀÚ·áÇüµéÀÌ È£È¯ °¡´ÉÇÏ´Ù¸é ÀÚµ¿È­µÈ º¯È¯ÀÌ ¼öÇàµÇ°í, ¸¸ÀÏ ¾Æ´Ï¶ó Çصµ, ȣȯ¼ºÀÌ ¾ø´Â ÀÚ·áÇüµé °£ÀÇ ¸í½ÃÀûÀÎ ÀÚ·áÇü º¯È¯À» ÇàÇÏ´Â °ÍÀº ¾ó¸¶µçÁö °¡´ÉÇÏ´Ù. ÀÚ·áÇüÀÇ ÀÚµ¿ÀûÀÎ º¯È¯À» ¼ºÃëÇϱâ À§Çؼ­´Â ´ÙÀ½À» ÇÊ¿ä·Î ÇÑ´Ù: ¿¹¸¦ µé¾î, int ÇüÀº byte ÇüÀ» ÀúÀåÇÒ ¸¸Å­ ÃæºÐÈ÷ Ä¿¾ß ÇÑ´Ù. ±×·¡¾ß ¸í½ÃÀûÀÎ º¯È¯À» ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù. Á¤¼ö ÇüÀº char Çü ¶Ç´Â boolean Çü°ú ȣȯµÇÁö ¾Ê´Â´Ù. »Ó¸¸ ¾Æ´Ï¶ó boolean ÇüÀº ´Ù¸¥ ³ª¸ÓÁö ÀÚ·áÇüµé°ú ÀüÇô ȣȯµÇÁö ¾Ê´Â´Ù. int °ªÀ» byte Çü¿¡ ÀúÀåÇÏ°í ½Í´Ù¸é, ´ÙÀ½°ú °°Àº Çü½Ä¿¡ µû¶ó ¸í½ÃÀûÀÎ º¯È¯À» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù:
 
(type) value

¿©±â¼­, typeÀº ÀÚ·áÇü º¯È¯ ´ë»óÀ» ³ªÅ¸³½´Ù. ¿¹:
 

int a;

char b;

a=(int) b;

            

ÀÚµ¿È­µÈ Çü º¯È¯Àº Á¤º¸ÀÇ »ó½ÇÀ» ÃÊ·¡Çϱ⠶§¹®¿¡ ¹Ýµå½Ã Á¶½ÉÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¸é:

ºÎµ¿ ¼Ò¼ö ÇüÀ» Á¤¼ö ÇüÀ¸·Î º¯È¯ÇÒ ¶§, ¼Ò¼öÁ¡ ÀÌÇÏ°¡ ¹«½ÃµÈ´Ù:
 

int a;

double d= 125.43;

a=(int) d;
º¯¼ö´Â °ªÀ¸·Î 125.¸¦ °¡Áø´Ù 
byte   b;

int i=257; 

b=(byte) i;

            
b´Â °ªÀ¸·Î 1À» °¡Áö´Âµ¥, 256ÀÌ byte ÇüÀÇ ¹üÀ§ÀÎ °æ¿ì¿¡ 257À» 256À¸·Î ³ª´« °á°ú·ÎºÎÅÍ ³ª¿Â °ÍÀÌ´Ù. 
byte b;

double d= 340.123;

b=(byte) d;
b´Â 84ÀÇ °ªÀ» °¡Áö°Ô µÈ´Ù  

ÀÌ·± ¸ðµç º¯È¯Àº ÄÄÆÄÀÏ·¯¿Í ÀÎÅÍÇÁ¸®ÅÍ·Î ¼öÇàµÈ´Ù. ¾î¶² ÄÄÆÄÀÏ ¿À·ùµµ ã¾Æ³»Áö ¸øÇÑ´Ù¸é ¸»ÀÌ´Ù.

¿¬»êÀÚ:

³× ºÎ·ù·Î ³ª´· ¼ö ÀÖ´Â ´Ù¾çÇÑ Á¾·ùÀÇ ¿¬»êÀÚµéÀÌ ÀÖ´Ù: »ê¼ú, ºñÆ® ¼öÁØ, °ü°è, ³í¸®. ÀϹÝÀûÀ¸·Î, ´Ù¸¥ ¾ð¾î¿¡¼­¿Í µ¿ÀÏÇÏ°Ô ÀÛ¿ëÇÏÁö¸¸, ´Ù¼Ò Â÷ÀÌ°¡ ÀÖ±â´Â ÇÏ´Ù. ±× Â÷ÀÌÁ¡À» ¿©±â¼­ ´Ù·ç·Á°í ÇÑ´Ù.
»ê¼ú ¿¬»êÀÚ:
¿¬»êÀÚ Çؼ³
+ ´õÇϱâ
- »©±â
* °öÇϱâ
/ ³ª´©±â
% ³ª¸ÓÁö
++ Áõ°¡
+= ´õÇÏ°í ´ëÀÔ
-= »©°í ´ëÀÔ
*= °öÇÏ°í ´ëÀÔ
/= ³ª´©°í ´ëÀÔ
%= ³ª¸ÓÁö¸¦ ±¸ÇÏ°í ´ëÀÔ
-- °¨¼Ò

³ª¸ÓÁö ¿¬»êÀÚ´Â Á¤¼ö¿Í ºÎµ¿ ¼Ò¼öÁ¡ °ª ¾çÂÊ¿¡ Àû¿ëµÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é:

int a=38;

double d=41.95;

int c=a%10;

double  e=d%10;

c º¯¼ö´Â 8ÀÌ µÈ´Ù. e º¯¼ö´Â 1.95¸¦ °¡Áø´Ù.

´ëÀÔ ¿¬»êÀÚµéÀº ´ÙÀ½°ú °°Àº ±¸¼º¿¡ À¯¿ëÇÏ´Ù:

a = a + 4; Àº a+=4; ¿Í °°´Ù

a = a % 2; Àº a%=2; ¿Í °°´Ù

º¸Åë, ´ÙÀ½°ú °°ÀÌ ¸»ÇÒ ¼ö ÀÖ´Ù:

var = var op expression; Àº var op= expression; ·Î ġȯµÉ ¼ö ÀÖ´Ù.

ºñÆ® ¼öÁØ ¿¬»êÀÚ:
Á¤¼ö, long Çü, int Çü, short Çü, char Çü, byte Çü¿¡ Àû¿ëµÇ¾î ÇÇ¿¬»êÀÚ ºñÆ®¸¦ º¯°æÇÏ´Â ºñÆ® ¼öÁØ ¿¬»êÀÚ°¡ ¸î °³ Á¤ÀǵǾî ÀÖ´Ù.
 
¿¬»êÀÚ Çؼ³
~ ºñÆ® ¼öÁØÀÇ ´ÜÇ× NOT
& ºñÆ® ¼öÁØÀÇ AND
| ºñÆ® ¼öÁØÀÇ OR
^ ºñÆ® ¼öÁØÀÇ ¹èŸÀû OR
>> ¿ìÃø ½¬ÇÁÆ®
>>> 0À¸·Î ä¿öÁö´Â ¿ìÃø ½¬ÇÁÆ®
<< ÁÂÃø ½¬ÇÁÆ®
&= ºñÆ® ¼öÁØÀÇ AND¿Í ´ëÀÔ
|= ºñÆ® ¼öÁØÀÇ OR¿Í ´ëÀÔ
^= ºñÆ® ¼öÁØÀÇ ¹èŸÀû OR¿Í ´ëÀÔ
>>= ¿ìÃø ½¬ÇÁÆ®¿Í ´ëÀÔ
>>>= 0À¸·Î ä¿öÁö´Â ¿ìÃø ½¬ÇÁÆ®¿Í ´ëÀÔ
<<= ÁÂÃø ½¬ÇÁÆ®¿Í ´ëÀÔ
°ü°è ¿¬»êÀÚ:
µÎ °³ÀÇ ÇÇ¿¬»êÀÚ °£ÀÇ °ü°è¸¦ °áÁ¤ÇÑ´Ù. ÀÌ Áß Çϳª°¡ ³ª¸ÓÁö¿Í °°ÀºÁö, ¾Æ´Ï¸é Å«Áö ¶Ç´Â ÀÛÀºÁö ¿©ºÎ¸¦ Ưº°È÷ °Ë»çÇÑ´Ù. °á°ú´Â ºÎ¿ï¸° °ªÀÌ´Ù.
 
¿¬»êÀÚ Çؼ³
== ¿Í °°Àº
!= ¿Í ´Ù¸¥ 
> º¸´Ù Å«
< º¸´Ù ÀÛÀº
>= °°°Å³ª º¸´Ù Å«
<= °°°Å³ª º¸´Ù ÀÛÀº

´Ù¸¥ ¾ð¾îµé(C/C++)°ú´Â ´Þ¸®, boolean °ªµéÀº True¿Í FalseÀÌ´Ù. Áï, À̰͵éÀº ¼öÄ¡°¡ ¾Æ´Ï´Ù..

³í¸® ¿¬»êÀÚ:
ºÎ¿ï¸° ¿¬»êÀÎ °æ¿ì¿¡¸¸ ÀÛ¿ëÇÏ¿© ¶Ç ´Ù¸¥ ºÎ¿ï¸° ¿¬»êÀ» ¸¸µé¾î ³½´Ù.
 
¿¬»êÀÚ Çؼ³
& ³í¸®Àû AND 
| ³í¸®Àû OR 
^ ³í¸®Àû XOR(¹èŸÀû OR)
|| ´ÜÃà OR
&& ´ÜÃà AND
! ´ÜÇ× ³í¸®Àû NOT
&= AND ´ëÀÔ
|= OR ´ëÀÔ
^= XOR ´ëÀÔ
== ¿Í °°Àº
!= ¿Í °°Áö ¾ÊÀº
?: »ïÇ× If-then-else

OR ´ÜÃà ¿¬»êÀÚÀÇ °á°ú´Â ´ÙÀ½°ú °°´Ù: µÎ ¹ø° ¿¬»êÀÚÀÇ °ªÀÌ ¾îÂîµÇ¾úµçÁö °£¿¡ ù ¹ø° ¿¬»êÀÚ°¡ ÂüÀ̸é ÂüÀÌ´Ù. ¸¶Âù°¡Áö·Î, AND ´ÜÃà ¿¬»êÀÚ´Â µÎ ¹ø° ¿¬»êÀÚÀÇ °ª¿¡ »ó°ü¾øÀÌ Ã¹ ¹ø° ¿¬»êÀÚ°¡ °ÅÁþÀÌ¸é °ÅÁþÀÌ´Ù.

»ïÇ× ¿¬»êÀÚÀÇ ÀϹÝÀûÀÎ Çü½ÄÀÌ´Ù:

Expession1 ? expession2 : expression3

¸¸ÀÏ Expression1ÀÌ ÂüÀ̸é, expresion2°¡ ½ÇÇàµÇ°í; ¸¸ÀÏ °ÅÁþÀ̸é, expression3ÀÌ ½ÇÇàµÈ´Ù.

¿¬»ê ¿ì¼± ¼øÀ§:

³ôÀº ÂÊ
( ) [ ] .  
++ -- ~ !
* / %  
+ -    
>> >>>> <<  
> >= < <=
= = !=    
&      
'      
|      
&&      
||      
?:      
= Op=    
³·Àº ÂÊ

È帧 Á¦¾î ¹®Àå

¼¼ °¡Áö ºÎ·ù·Î ³ª´· ¼ö Àִµ¥ ¼±º°(Selection), ¹Ýº¹(Iteration), ºÐ±â(Jump)°¡ ±×°ÍÀÌ´Ù.
 
±¸ºÐ ¹®Àå Çؼ³
¼±º° if
if ( condition ) 

  sentence1;

else 

  sentence2; 
  ¿©·¯ ifµé
If (condition ) 

  sentence;

else if (condition) 

  sentence;

else if (condition) 

  sentence;

.

.

else 

  sentence;
  switch
switch (expression){

  case value1:

    sentence;

    break;

  case value2:

    sentence;

    break;

    .

    ...

  default :

    sentence;

}
¹Ýº¹ while
while (condition) {

  sentence;

}
  do while
do {

  sentences;

} while (condition)
  for
for (initialization, condition, iteration) {

              

  sentences;

}
ºÐ±â break switch·ÎºÎÅÍ ºüÁü. 

loop·ÎºÎÅÍ ºüÁü

  continue Çö loop ¹Ýº¹À¸·ÎºÎÅÍ ºüÁ® ³ª¿ÀÁö¸¸ µ¿ÀÏÇÑ loop¸¦ °è¼ÓÇÑ´Ù
  return ¸Þ¼Òµå·ÎºÎÅÍ ¸íÈ®ÇÏ°Ô ¸®ÅÏÇÑ´Ù

Ŭ·¡½º, ¸Þ¼Òµå, »ó¼Ó

ÀÌÀü ±â°í¿¡¼­ ¾ð±ÞÇÑ ¹Ù´ë·Î, ÀÚ¹Ù´Â ÃÖÃʺÎÅÍ ¼³°èµÈ ¾ð¾îÀÌ´Ù. ÀÌ´Â °´Ã¼ ÁöÇâ ÇÁ·Î±×·¥¹Ö ¾ð¾î¸¦ Æó¼âÀûÀÌ°í ºÐ¸íÇÏ°í À¯¿ëÇÏ°Ô ±¸ÇöÇÑ ¾ð¾î¿¡ ´ëÇÑ ÀÌÀ¯°¡ µÈ´Ù. ±× °á°ú, ¸ðµç ÀÚ¹Ù ÇÁ·Î±×·¥Àº °´Ã¼ ÁöÇâÀûÀÌ´Ù. ÀÌ ¿¬Àç ±â°í¿¡¼­ ¿©·¯ºÐÀº °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö ±³½ÀÀ» ¹ß°ßÇÏÁö ¸øÇÑ´Ù´Â °ÍÀ» ÁÖÁöÇؾ߸¸ ÇÑ´Ù. ±×·± ¸ñÀûÀ» À§Çؼ­ ¿©·¯ºÐÀÌ ±âÃʺÎÅÍ ¼÷·Ãµµ ³ôÀº ÇÁ·Î±×·¡¹Ö¿¡ À̸£±â±îÁö ¸¹Àº ºÐ·®ÀÇ ¹®Ç带 ãÀ» ¼ö ÀÖ´Ù. OOP (°´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö)Àº ÀÚ¹Ù¿¡¼­ ¸Å¿ì ±Ùº»ÀÌ µÇ±â ¶§¹®¿¡,  ¿©·¯ºÐÀÌ ¾ð¾î·Î ÇÁ·Î±×·¥ ÀÛ¼ºÀ» ½ÃÀÛÇϱâ Àü¿¡ ²À ÀÌÇØÇÏ¿©¾ß ÇÑ´Ù. ºñ·Ï Ç×»ó ÀÚ¹Ù ¿ë¾î¸¦ µû¸£°í, ÃÖ´Ü ÃÖ±ÙÁ¢ ¹æ½ÄÀ¸·Î ÀÚ¹Ù¸¦ ¿ÏÀüÇÑ °´Ã¼ ÁöÇâ ¾ð¾î·Î ¸¸µå´Â ¿ä¼Ò¸¦ Á¤ÀÇÇÏ°íÀÚ ³ë·ÂÇÒ °ÍÀÌÁö¸¸, ÀÌ Æз¯´ÙÀÓÀÇ ¾î¶² ±âº»ÀûÀÎ ¿ä¼Ò¸¦ »ç¿ëÇÏ°í ´Ù·ç±âµµ ÇØ¾ß ÇÑ´Ù.

Ŭ·¡½º:

ÀÚ¹Ù Ä¿³Î(kernel)ÀÌ´Ù. °´Ã¼ÀÇ Çü»ó°ú ¼ºÁúÀ» Á¤ÀÇÇÏ°í, °´Ã¼ ÁöÇâÀû ÇÁ·Î±×·¡¹ÖÀÇ ±âÃʸ¦ ±â¼úÇÑ´Ù. »õ·Î¿î ÀÚ·á ÇüÀÌ Å¬·¡½º¿¡ ÀÇÇØ Á¤ÀǵDZ⵵ ÇÏ°í, ÀÌ·± »õ·Î¿î ÀÚ·áÇüÀÇ °´Ã¼¸¦ »ý¼ºÇϴµ¥ ¾²¿©Áú ¼öµµ ÀÖ´Ù.

Ŭ·¡½º´Â °´Ã¼¸¦ À§ÇÑ ¸ðµ¨ (ÆÐÅÏ)ÀÌ°í, °´Ã¼´Â Ŭ·¡½ºÀÇ ÀνºÅϽº(instance)ÀÌ´Ù. ÀÚ¹Ù´Â Àü¿ª ÇÔ¼ö ¶Ç´Â º¯¼ö¸¦ Áö¿øÇÏÁö ¾Ê¾Æ, ¸ðµç ÇÁ·Î±×·¥ È°µ¿(actions) (¸Þ¼Òµå)Àº ¹Ýµå½Ã Ŭ·¡½º ³»¿¡¼­ Á¤ÀǵǾî¾ß ÇÑ´Ù.

Ŭ·¡½º´Â ¿¹¾à¾î "class"¸¦ »ç¿ëÇÏ¿© Á¤ÀǵȴÙ. º¸ÅëÀÇ Å¬·¡½º Á¤ÀÇ´Â ´ÙÀ½°ú °°´Ù:
 

class class_name {

  Type instance1_of_variable;

  Type instance2_of_variable;

  .

  .

  ...

  type instance_variable;

  type method_name(parameter_list){

    //body of the method

  }

  .

  .

  ..

  type name_of_the_method(parameter_list){





    //body of the method

  }

}

Ŭ·¡½º ³»ºÎÀÇ º¯¼ö ¶Ç´Â µ¥ÀÌÅ͸¦ ÀνºÅϽº º¯¼ö(variables of instances)¶ó°í ºÎ¸¥´Ù. ¸Þ¼Òµå´Â Äڵ带 º¸À¯ÇÏ°í, Ŭ·¡½ºÀÇ µ¥ÀÌÅÍ°¡ ¾î¶»°Ô »ç¿ëµÉ ¼ö ÀÖ´ÂÁö Á¤ÀÇÇÑ´Ù.

Ŭ·¡½ºÀÇ °´Ã¼¸¦ ¾ò±â À§Çؼ­ µÎ ´Ü°è°¡ ÇÊ¿äÇÏ´Ù:

    Ŭ·¡½º ÀÚ·áÇüÀÇ º¯¼ö¸¦ ¼±¾ðÇÒ °Í. ÀÌ º¯¼ö´Â °´Ã¼¸¦ ¼±¾ðÇÏ´Â °ÍÀÌ ¾Æ´Ï°í, °´Ã¼¸¦ ÂüÁ¶ÇÏ´Â µ¥ »ç¿ë °¡´ÉÇÑ º¯¼öÀÏ »ÓÀÌ´Ù.

    °´Ã¼¿¡ µ¿ÀûÀ¸·Î ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ±×°ÍÀÇ ÂüÁ¶¸¦ ¾òÀ» °Í.

ÀÌ µÎ ¹ø° ´Ü°è´Â new ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ÇàÇØÁø´Ù. ±×°ÍÀÇ ÀϹÝÀûÀÎ °üÁ¡Àº ´ÙÀ½¿¡ ÀÖ´Ù:
 
            

variable = new name_of_the_class();

¿©±â¼­, "variable"Àº »ý¼ºÇÏ·Á´Â Ŭ·¡½ºÀÇ º¯¼öÀÌ°í, name_of_the_class´Â ÀνºÅϽº·Î µÇ´Â Ŭ·¡½ºÀÇ ¸íĪÀÌ´Ù. °´Ã¼ÀÇ »ý¼ºÀ» ±×¸²À¸·Î Ç¥ÇöÇÑ´Ù¸é ´ÙÀ½°ú °°´Ù:

¸Þ¼Òµå:

¸Þ¼ÒµåÀÇ ÀϹÝÀûÀÎ Çü½ÄÀº ÀÌ·¸´Ù:
 
type name_of_the_method (parameter_list) {



  //method_body

}

"type"Àº ¸Þ¼Òµå¿¡ ÀÇÇØ ¸®ÅϵǴ ÀÚ·áÇüÀÌ´Ù; Ŭ·¡½º ÇüÀ» Æ÷ÇÔÇÏ¿© ¾î¶² À¯È¿ÇÑ ÀÚ·áÇüÀÌ¶óµµ °¡´ÉÇÏ´Ù. ȤÀº, ¾î¶² °ªµµ ¸®ÅÏÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù(void).

¸Å°³º¯¼ö ¸ñ·Ï(parameter list)Àº ÀÚ·áÇü-½Äº°ÀÚ°¡ ½ÖÀ¸·Î ¿¬¼ÓµÈ °ÍÀε¥ ½°Ç¥·Î ±¸ºÐµÈ´Ù.(¿ªÀÚÁÖ: ¿µ¹® ¹ø¿ª¿¡¼­´Â ÄÝ·ÐÀ¸·Î ±¸ºÐÇÑ´Ù°í µÇ¾î ÀÖÁö¸¸, ÀÚ¹Ù ¾ð¾î ¹®¹ýÀ» ÂüÁ¶ÇÏ¿© ½°Ç¥·Î ¹Ù²Ù¾î ¹Ù·Î ÀâÀ½.) ¸Å°³º¯¼ö´Â ¸Þ¼Òµå¿¡ ÁÖ¾îÁø ÀÎÀÚÀÇ °ªÀ» ¹Þ´Â º¯¼öÀÌ´Ù. ¸Þ¼Òµå°¡ ¸Å°³º¯¼ö¸¦ °¡ÁöÁö ¾Ê´Â´Ù¸é, ¸ñ·ÏÀº ºñ¾î ÀÖÀ» °ÍÀÌ´Ù.

"void"°¡ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇÏ´Â ¸Þ¼Òµå »ç¿ë¹ý:

            

return value;

¿©±â¼­ value´Â ¸®ÅϵǴ °ªÀÌ´Ù.

ÀÚ¹Ù´Â ¸Å¿ì ¸¹Àº ¸Þ¼Òµå¸¦ Á¦°øÇϴµ¥ ¹«Ã´ ´Ù·ç±â ½±°í °­·ÂÇÏ´Ù. ±×·¡¼­ ¿©±â¼­ºÎÅÍ À̹ø ±â°íÀÇ ³¡±îÁö, ¸Þ¼ÒµåÀÇ ¸Å¿ì Áß¿äÇÑ °üÁ¡À» »ìÆì º¸·Á°í ÇÑ´Ù.

±×·¸Áö¸¸, ±×·¯±â¿¡ ¾Õ¼­, °£´ÜÇÑ ¿¹·Î¼­ ÀÌÀüÀÇ °³³äÀ» ´Ù½Ã °ËÅäÇØ º¸ÀÚ.

(Ç®°ú °°ÀÌ) »ç°¢Çü ¸ð¾çÀÇ »óÀÚÀÇ ¿ë·®À» °è»êÇϴ Ŭ·¡½º¸¦ »ý¼ºÇÏÀÚ:
 

ÄÚµå ÁÖ¼®
class capacity {

    double length;

    double width;

    double height;

    void CalcVolume () {

        double volume ;

        volume = length*width*height;

        System.out.println("Volume: " +

                           volume);

    }

}
¿©·¯ºÐÀÌ ¾Ë ¼ö ÀÖµíÀÌ, ¼¼ °³ÀÇ ÀνºÅϽº º¯¼ö length, width, height¸¦ º¸À¯ÇÏ´Â "capacity"¶ó´Â À̸§ÀÇ Å¬·¡½º¸¦ Á¤ÀÇÇß´Ù. ¶ÇÇÑ ±×¸© ºÎÇǸ¦ °è»êÇÏ´Â ¸Þ¼Òµå¸¦ Á¤ÀÇÇß´Ù. ¼Ò½º ÆÄÀÏÀÇ À̸§À» capacity.java¶ó°í ºÎ¸¦ °ÍÀÌ´Ù. ±×°ÍÀ» ÄÄÆÄÀÏÇϸé, capacity.class Ŭ·¡½º(ÆÄÀÏ)ÀÌ »ý±æ °ÍÀÌ´Ù.

ÀÌ Å¬·¡½º´Â µ¶ÀÚÀûÀ¸·Î ¾î¶°ÇÑ ÀÛµ¿µµ ÇàÇÒ ¼ö ¾øÀ¸¸ç, ¾ÖÇø´°ú °°ÀÌ, ¸í·É¾î Çà(command line)À¸·ÎºÎÅÍ ½ÇÇàµÇ´Â main() ¸Þ¼Òµå¸¦ °¡ÁöÁö ¾Ê´Â´Ù. ÀÌ Å¬·¡½ºÀÇ °´Ã¼ (ÀνºÅϽº)¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Â ÅÛÇø´(template)À» »ý¼ºÇÑ °ÍÀÌ´Ù. ÀÌ ¸ñÀûÀ» ÀÌ·ç±â À§ÇØ, ¸í·É¾î ÇàÀ¸·ÎºÎÅÍ ½ÇÇàµÉ ¼ö Àִ Ŭ·¡½º¸¦ »ý¼ºÇÏ·Á°í ÇÑ´Ù.

ÄÚµå ÁÖ¼®
class example {

  public static void main(String Arg[]){  

    capacity p1=new capacity();

    capacity p2=new capacity();

    p1.length = 16;

    p1.width=3;

    p1.height=2;



     //

    p2.length = 25;

    p2.width=6;

    p2.height=3;



    //

    p1.CalcVolume();



    //

    p2.CalcVolume();



  }



}  

            
capacity ÇüÀÇ º¯¼ö°¡ µÎ °³ Á¤ÀǵȴÙ. p1, p2°¡ ±×°ÍÀÌ´Ù. new ¿¬»êÀÚ·Î capacity ÇüÀÇ °´Ã¼¸¦ µÎ °³ »ý¼ºÇϸç, p1, p2 º¯¼ö¸¦ ÅëÇØ °´Ã¼µéÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. 

´ÙÀ½À¸·Î, »ý¼ºµÈ °´Ã¼ÀÇ º¯¼ö °¢°¢¿¡ °ªÀ» ´ëÀÔÇÑ´Ù. 

p1À¸·Î ÂüÁ¶ÇÑ °´Ã¼ÀÇ CalcVolume() ¸Þ¼Òµå¸¦ È£ÃâÇÑ´Ù. ±×·¯¸é, °á°ú·Î

"Volume: 96"ÀÌ È­¸é¿¡ º¸¿©Áø´Ù. 

p2·Î ÂüÁ¶ÇÑ °´Ã¼µµ µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î,  

"Volume: 450"ÀÌ È­¸é¿¡ º¸¿¬Áø´Ù.

p1.CalcVolume()°¡ ½ÇÇàµÇ´Â °æ¿ì, ÀÚ¹Ù Çؼ®±â°¡ CalcVolume() ³»¿¡ Á¤ÀÇµÈ ÄÚµåÀÇ Á¦¾î¸¦ µû¸¥´Ù. ÀÏ´Ü ¸ðµç Á¦¾î ¹®ÀåµéÀÌ ½ÇÇàµÇ¸é È£ÃâÇÑ ·çƾ¿¡ ¸®ÅÏÇÏ°í ½ÇÇàÀº È£ÃâÀÇ ¹Ù·Î ´ÙÀ½ Çà¿¡¼­ °è¼ÓµÈ´Ù.

¸Å°³º¯¼ö¸¦ °¡Áø ¸Þ¼Òµå. °ª ¸®ÅÏ.

¸Þ¼ÒµåÀÇ ´ë´Ù¼ö´Â ¸Þ¼Òµå¸¦ ÀϹÝÈ­Çϵµ·Ï Çã¿ëÇÏ´Â ¸Å°³º¯¼ö¿Í ÇÔ²² »ç¿ëµÈ´Ù. °Ô´Ù°¡, ¸Þ¼Òµå´Â °ªÀ» ¸®ÅÏÇÒ ¼ö ÀÖ´Ù, ±×·¡¼­ »óÀÌÇÑ »óȲ¿¡¼­µµ »ç¿ëµÉ ¼ö ÀÖ´Â, ´Ù¾çÇÑ µ¥ÀÌÅÍ¿Í ÇÔ²² ÀÛµ¿ °¡´ÉÇÑ ¸Þ¼Òµå¸¦ ¸¸µé ¼ö ÀÖ´Ù.

À§ÀÇ ¿¹Á¦¸¦ °³¼±ÇÏÀÚ:
 

ÄÚµå ÁÖ¼®
class capacity {

  double CalcVolume (double l, 

                     double a,

                     double p) {

    double volume=l*a*p ;

    return volume;

  }

} 
CalcVolume ¸Þ¼Òµå´Â ¼¼ °³ÀÇ ¸Å°³º¯¼ö¸¦ ¼ö·ÉÇϵµ·Ï ¼öÁ¤µÇ¾ú´Ù. ¶ÇÇÑ double ÇüÀ» ¸®ÅÏÇϵµ·Ï Á¤ÀǵǾú´Ù. ÀÌ ÀÛµ¿Àº return volume ¸í·É¿¡ ÀÇÇØ ¼öÇàµÈ´Ù.
class example {

  public static void main(String Arg[]){  

    capacity p1 = new capacity();

    capacity p2 = new capacity();



    double vol;



    vol=p1.CalcVolume(10,3,2);



    System.out.println("Volume: " + vol);  



    //



    vol=p2.CalcVolume(25,5,2);



    System.out.println("Volume: " + vol);  

  }

} 

            
¸Þ¼ÒµåÀÇ È£ÃâÀº ¿øÇÏ´Â ¸Å°³º¯¼ö¸¦ Àü´ÞÇÏ¿© ÇàÇØÁø´Ù. vol º¯¼ö¿¡ ¸Þ¼ÒµåÀÇ °ªÀ» ¸®ÅÏÇϴµ¥, º¯¼ö´Â ¸Þ¼Òµå¿Í µ¿ÀÏÇÑ ÇüÀ̾î¾ß ÇÑ´Ù.

Ŭ·¡½ºÀÇ ÁÖ¿äÇÑ °üÁ¡Àº »ý¼ºÀÚ(constructors)ÀÌ´Ù. Ŭ·¡½ºÀÇ °´Ã¼°¡ »ý¼ºµÉ ¶§, ÀÌ Ç׸ñµéÀº ¾î¶² ÀϵéÀÌ ÀϾ´Â°¡¸¦ Á¤ÀÇÇÑ´Ù. À̵éÀÇ ´ëºÎºÐÀº Ŭ·¡½º Á¤ÀÇ ³»¿¡ ÀÚ½ÅÀÇ »ý¼ºÀÚ¸¦ ¸í½ÃÀûÀ¸·Î Á¤ÀÇÇÑ´Ù. ¸¸¾à Á¤ÀǵÇÁö ¾ÊÀ¸¸é, (À§ÀÇ ¿¹Á¦¿Í °°ÀÌ) ÀÚ¹Ù´Â ±âº» »ý¼ºÀÚ(default constructor)¸¦ »ç¿ëÇÑ´Ù.

Ŭ·¡½º¿¡ Æ÷ÇÔµÈ »ý¼ºÀÚ´Â Á¤È®ÇÏ°Ô Å¬·¡½º¿Í µ¿ÀÏÇÑ ¸íĪÀ» °¡Áø´Ù. ¹®Àå ±¸¼º¹ýÀº ¸Þ¼ÒµåÀÇ ±×°Í°ú À¯»çÇÏ´Ù. °´Ã¼¸¦ »ý¼ºÇÑ ÈÄ¿¡ new ¿¬»êÀÚ°¡ Á¾·áµÇ±â Àü¿¡ »ý¼ºÀÚ´Â ÀÚµ¿ÀûÀ¸·Î ½ÇÇàµÈ´Ù.

»ý¼ºÀÚ´Â ¾î¶² ÀÚ·áÇüµµ °¡ÁöÁö ¾Ê´Â´Ù. ¹¬½ÃÀûÀ¸·Î Ŭ·¡½ºÀÇ ÇüÀ» ¸®ÅÏÇϱ⠶§¹®ÀÌ´Ù. »ý¼ºÀÚ´Â ¸ðµç °´Ã¼ »óÅÂÀÇ ÃʱâÈ­·Î ¼öÇàµÈ´Ù. ±×·±µ¥, °´Ã¼ÀÇ ÀνºÅϽº¸¦ »ý¼ºÇÏ´Â ÄÚµå´Â ±×°ÍÀ» ÀÌ¿ëÇÏ´Â ÁغñµÈ °´Ã¼¸¦ °¡Áø´Ù. »çÀü¿¡, ÀνºÅϽº º¯¼ö´Â »ý¼ºÀÚ¿¡ ÀÇÇØ ÃʱâÈ­µÈ´Ù. ÀÌ´Â ¸Þ¼Òµå¿Í ÇÔ²² ÀÌ·ïÁö±â ¶§¹®¿¡, »ý¼ºÀÚ´Â ±×°ÍµéÀ» ¿ù¾À À¯¿ëÇÏ°Ô ¸¸µå´Â ¸Å°³º¯¼ö¸¦ °¡Áú ¼ö ÀÖ´Ù . ÀÌ ¸ðµç »õ·Î¿î °üÁ¡À» ¿¬±¸Çϱâ À§ÇØ À§ÀÇ ¿¹Á¦¸¦ ¼öÁ¤Çϵµ·Ï ÇÏÀÚ.
 

ÄÚµå ÁÖ¼®
class capacity {

  double length;

  double width;

  double height;



  //

  capacity(double l, 

           double a, 

           double p){  

    length=l;

    width=a;

    height=p;

  }



  //

  void CalcVolume () {

    double volume ;

    volume=large*wide*high;

    return volume;

  }

} 

            
»ý¼ºÀÚ°¡ Ŭ·¡½º¿¡ Ãß°¡µÇ´Âµ¥, Ŭ·¡½º¿Í µ¿ÀÏÇÑ ¸íĪÀ» °¡ÁöÁö¸¸ ¾î¶² ÀÚ·áÇüµµ ¸®ÅÏÇÏÁö ¾Ê´Â ¸Þ¼ÒµåÀÇ ÀϸéÀ» º¸ÀδÙ. ÀÌ »ý¼ºÀÚ´Â ¼ö·ÉÇÑ ÀÎÀÚ·Î ¼±¾ðµÈ º¯¼öÀÇ ÀνºÅϽº¸¦ ÃʱâÈ­ÇÑ´Ù.
class example {

  public static void main(String Arg[]) {  

    capacity p1=new capacity(10,5,2);

    capacity p2=new capacity(25,6,2);

    double vol;

    vol=p1.CalcVolume();

    System.out.println("Volume: " + vol);  



    //

    vol=p2.CalcVolume();

    System.out.println("Volume: " + vol);  

  }

} 
new ¿¬»êÀڴ Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ »ý¼ºÇÑ´Ù. ±× Ŭ·¡½ºÀÇ »ý¼ºÀÚÇÑÅ× ÇÊ¿äÇÑ ¸Å°³º¯¼ö¸¦ ÀüÇÑ´Ù.

¸¸ÀÏ °´Ã¼¿¡ ´ëÇÑ ¾î¶² ÂüÁ¶µµ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é, ÀÌ °´Ã¼´Â ´õ ÀÌ»ó »ç¿ëµÉ ¼ö ¾ø´Ù°í °¡Á¤µÇ¾î, ÇÒ´çµÈ ¸Þ¸ð¸®°¡ ÇØÁ¦µÈ´Ù. ÀÌ Ã³¸®´Â ÇÁ·Î±×·¥ ½ÇÇàÀ» ÅëÇØ ÀÚµ¿È­µÈ ¹æ¹ýÀ¸·Î ¼öÇàµÇ±â ¶§¹®¿¡ ¸í½ÃÀûÀ¸·Î °´Ã¼¸¦ Æı«(destroy)ÇÒ ÇÊ¿ä°¡ ¾ø´Ù.

±×·³¿¡µµ ºÒ±¸ÇÏ°í, Ŭ·¡½º¿¡ ¼Ò¸êÀÚ(finisher)¸¦ µ¡ºÙÀ̱â À§ÇØ ¸Þ¼Òµå "finalize()"°¡ »ç¿ëµÈ´Ù. Çؼ®±â°¡ °´Ã¼¸¦ Æı«ÇÒ ¶§ ÀÌ ¸Þ¼Òµå°¡ ½ÇÇàµÈ´Ù. ÀÌ ¸Þ¼Òµå¿¡, °´Ã¼¸¦ Æı«Çϱâ Àü¿¡ ½ÇÇàµÇ¾îÁö´Â ÀÛµ¿À» Æ÷ÇÔ½Ãų °ÍÀÌ´Ù.

¸Þ¼Òµå Áßø(method overload).

´ÙÇü¼º(ÇϳªÀÇ ÀÎÅÍÆäÀ̽º¸¦ À§ÇÑ ´Ù¼öÀÇ ¸Þ¼Òµå)´Â °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö¿¡¼­ ±âº»ÀûÀÎ ÇÙ½É(PILLARS )ÀÇ ÇϳªÀÌ´Ù. ÀÚ¹Ù´Â ¸Þ¼Òµå Áßø¿¡ ÀÇÇØ ´ÙÇü¼ºÀ» ±¸ÇöÇÑ´Ù.

µ¿ÀÏÇÑ ¸íĪÀ» °¡Áö´Â »óÀÌÇÑ ¸Þ¼ÒµåµéÀÌ Å¬·¡½º ³»¿¡¼­ Á¤ÀÇµÉ ¼ö ÀÖÁö¸¸, ±×°ÍµéÀº »óÀÌÇÑ ¸Å°³º¯¼ö ¸ñ·Ï ¶Ç´Â ÃÖ¼ÒÇÑ »óÀÌÇÑ ¸®ÅÏ ÀÚ·áÇüÀ» ¹Ýµå½Ã °¡Á®¾ß ÇÑ´Ù. ÁßøµÈ ¸Þ¼Òµå°¡ È£ÃâµÉ ¶§ »ç¿ëµÇ¾îÁö´Â ¸Þ¼ÒµåÀÇ ¹öÀüÀ» ±¸º°Çϱâ À§ÇÏ¿© ÀÚ¹Ù Çؼ®±â´Â ÀÚ·áÇü ¹× È£Ãâ°ú ÇÔ²² Àü´ÞµÈ ÀÎÀÚµéÀ» »ç¿ëÇÑ´Ù.

ºñ·Ï ´ÙÇü¼ºÀ» ¿ÏÀüÈ÷ ºÒ°¡´ÉÇϵµ·Ï ¸¸µéÁö¸¸, ÁßøµÈ ¸Þ¼ÒµåÀÇ °¢ ¹öÀüÀº »óÀÌÇÑ Å½ºÅ©(task)¸¦ ¼öÇàÇÒ ¼ö ÀÖ´Ù. ±×·¡¼­ µÉ ¼ö ÀÖÀ¸¸é ¸Þ¼Òµå ÁßøÀº ¾î¶² °ü°è¸¦ ¾Ï½ÃÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¸Þ¼Òµå°¡ ÁßøµÇ¾îÁö´Â °Í°ú µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î »ý¼ºÀÚµµ ÁßøµÉ ¼ö ÀÖ´Ù.

ÀÎÀÚ Àü´Þ.

ÀϹÝÀûÀ¸·Î, ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â ÀÎÀÚ¸¦ Àü´ÞÇϱâ À§ÇØ µÎ °¡Áö ¹æ½ÄÀ» Çã¿ëÇÑ´Ù:

ÀÚ¹Ù´Â ¸Þ¼Òµå¿¡ ÀÎÀÚ¸¦ Àü´ÞÇÏ´Â µ¥ µÎ °¡Áö ¹æ¹ýÀ» Áö¿øÇÑ´Ù. ¸¸ÀÏ ÀÎÀÚ°¡ ´Ü¼ø ÀÚ·áÇüÀ̶ó¸é, °ª¿¡ ÀÇÇØ Àü´ÞµÇÁö¸¸, ÀÎÀÚ°¡ °´Ã¼ÀÎ °æ¿ì¿¡ ÂüÁ¶¿¡ ÀÇÇØ Àü´ÞµÈ´Ù.

Á¢±Ù ÅëÁ¦.

°´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö¿¡¼­ ¶Ç ´Ù¸¥ ±âº»ÀûÀÎ ÇÙ½ÉÀº ĸ½¶È­(ENCAPSULATION)ÀÌ´Ù. ÀÌ°ÍÀº µ¥ÀÌÅÍ°¡ ÄÚµå¿Í ¿¬°üµÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ´õ¿íÀÌ, ĸ½¶È­´Â Á¢±Ù ÅëÁ¦¸¦ Á¦°øÇÑ´Ù. ´Ù½Ã ¸»Çؼ­, ÇÁ·Î±×·¥ÀÇ ÀϺδ Ŭ·¡½ºÀÇ ¸â¹ö(member)¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù.

ÀÚ¹Ù¿¡¼­ Á¢±Ù ÁöÁ¤Àº 'public', 'private', 'protected'ÀÌ´Ù.

¸Þ¼Òµå ¶Ç´Â ÀνºÅϽº-º¯¼ö°¡ 'public'À¸·Î Á¤ÀÇµÉ ¶§, ÇÁ·Î±×·¥ÀÇ ¾î¶² ºÎºÐÀ¸·ÎºÎÅ͵µ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù. ¸¸ÀÏ 'private'À¸·Î Á¤Àǵȴٸé, Ŭ·¡½º ÀÚüÀÇ ´Ù¸¥ ¸Þ¼Òµå¿¡ ÀÇÇؼ­¸¸ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù. ±âº»ÀûÀ¸·Î ¸ðµç ¸Þ¼Òµå ¶Ç´Â ÀνºÅϽº-º¯¼öµéÀº (±× ÀÚ½ÅÀÌ ¼ÓÇÑ ÆÐÅ°Áö¿¡) 'public'ÀÌ´Ù.

'protected' ÁöÁ¤ÀÚ´Â »ó¼Ó°ú ÇÔ²² ÀÛ¿ëÇÒ ¶§ »ç¿ëµÈ´Ù. »ó¼ÓÀº ´ÙÀ½ ¹ø ÁÖÁ¦ÀÌ´Ù.

»ó¼Ó(INHERITANCE).

°´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹ÖÀ» Á¤ÀÇÇÏ´Â ¼¼ °¡Áö ¿ä¼Ò´Â ´ÙÇü¼º, ĸ½¶È­, ±×¸®°í ¸Ç ¸¶Áö¸·À¸·Î »ó¼ÓÀÌ´Ù. ÀϹÝÀûÀΠŬ·¡½º(superclass)´Â »ó¼ÓÀ» ÅëÇØ Á¤ÀǵȴÙ. ÀÌ ÃÑ°ýÀûÀΠŬ·¡½º´Â °øÅëÀÇ Æ¯¼ºÀ» ¸ðÀ½À¸·Î½á ´Ù¸¥ ´õ¿í ±¸Ã¼ÀûÀΠŬ·¡½º¿¡ ÀÇÇØ, ¸î °¡ÁöÀÇ ´Ù¸¥ ƯÀ¯ÀÇ Æ¯¼ºÀ» Ãß°¡ÇÏ¿© »ó¼ÓµÉ ¼ö ÀÖ´Ù.

A »óÀ§ Ŭ·¡½º(superclass)ÀÇ Æ¯¼ºÀ» »ó¼ÓÇϴ Ŭ·¡½ºÀÎ B¸¦ ¸¸µé±â À§ÇÑ B Á¤ÀǸ¦ º¸ÀδÙ:
 

class B extends A {

    // class definition

}

Ŭ·¡½º B´Â A »óÀ§ Ŭ·¡½ºÀÇ ¸ðµç ¸â¹ö¸¦ Æ÷ÇÔÇϴµ¥, ÈÄÀÚ´Â ÀÚÀ¯·Ó°Ô »ç¿ëµÇ´Â ¹«¸í(AUTONOMOUS) Ŭ·¡½ºÀÏ ¼ö ÀÖ´Ù. ¶ÇÇÑ, Ŭ·¡½º B´Â ¾î¶² ´Ù¸¥ Ŭ·¡½ºÀÇ »óÀ§ Ŭ·¡½º°¡ µÉ ¼ö ÀÖ´Ù.

ÀÚ¹Ù´Â »óÀÌÇÑ »óÀ§ Ŭ·¡½ºµé·ÎºÎÅÍ ÇϳªÀÇ ÇÏÀ§ Ŭ·¡½º(subclass)¸¦ ¸¸µå´Â ´ÙÁß »ó¼Ó(multiple inheritance)À» Çã¿ëÇÏÁö ¾Ê´Â´Ù.

¸¸ÀÏ »óÀ§ Ŭ·¡½º¿¡ 'private'·Î Á¤ÀÇµÈ ¸â¹öµéÀÌ ÀÖ´Ù¸é, »ó¼ÓµÈ Ŭ·¡½º¿¡ ÀÇÇØ Á¢±ÙÀÌ ºÒ°¡´ÉÇÏ´Ù. ÇÏÀ§ Ŭ·¡½º°¡ Áï½ÃÀûÀ¸·Î »óÀ§ Ŭ·¡½º¸¦ ÂüÁ¶ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù¸é, ¿¹¾à¾î 'super'°¡ »ç¿ëµÉ ¼ö ÀÖ´Ù. ÀÌ ¹æ¹ýÀ¸·Î ÇÏÀ§ Ŭ·¡½º¿¡ ÀÇÇØ Àº´ÐµÈ(hidden) »óÀ§ Ŭ·¡½ºÀÇ »ý¼ºÀÚ ¶Ç´Â ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.

ÇÏÀ§ Ŭ·¡½ºÀÇ ¸Þ¼Òµå°¡ »óÀ§ Ŭ·¡½ºÀÇ ¸Þ¼Òµå¿Í µ¿ÀÏÇÑ ¸íĪ°ú ÀÚ·áÇüÀ» °¡Áú ¶§, ¸Þ¼Òµå°¡ Áߺ¹µÈ´Ù(overwritten)°í ¸»ÇÑ´Ù. ÀÌ Æ¯¼ºÀº ÀÚ¹ÙÀÇ °­·ÂÇÑ ÀϸéÀÇ ÇÑ ±âÃʸ¦ Çü¼ºÇÑ´Ù. "µ¿Àû ¼±º° ¸Þ¼Òµå(Dynamic selection method)"¶ó°í ºÎ¸¥´Ù. ÀÌ´Â, ¸Å¹ø È£Ã⸶´Ù ¾î´À ¸Þ¼Òµå°¡ »ç¿ëµÇ¾î¾ß ÇÏ´ÂÁö °áÁ¤ÀÌ, ÂüÁ¶µÈ º¯¼ö ÀÚ·áÇü¿¡ ÀÇÁ¸ÇÏ¿© ÀûÀýÇÏ°Ô ½ÇÇà Áß(execution time)¿¡ ¼öÇàµÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

´ÙÀ½ ±â°í¿¡¼­´Â Ãß»ó Ŭ·¡½º(abstract classes), ÀÎÅÍÆäÀ̽º(interfaces) µî°ú °°Àº »ó¼ÓÀÇ ¸ðµç ´É·ÂÀ» ¹è¿ï °ÍÀÌ´Ù.

Âü°í


¹ø¿ª: Ȳ ¼ºÁØ
º» À¥½ÎÀÌÆ®´Â Miguel Angel Sepúlveda´Ô¿¡ ÀÇÇØ °ü¸®µË´Ï´Ù. 
© Jose M. Fernandez 1998 
LinuxFocus 1998