ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
ÀÚ¹Ù ½ºÅ͵ð ÆäÀÌÁö ÀÔ´Ï´Ù.
½ºÅ͵𸦠À§ÇÑ ¹®¼·Î Tutorials & Code Camps¸¦ ¼±ÅÃÇß½À´Ï´Ù. ÀÌ ¹®¼´Â BasicJava1¿¡¼ ãÀ» ¼ö ÀÖ½À´Ï´Ù.1 ÀÚ¹Ù¸¦ À§ÇÑ ÄÄÇ»ÅÍ ¼³Á¤
°£´ÙÇÑ ÀÚ¹Ù ÇÁ·Î±×·¥ÀÇ ÀÛ¼º°ú Å×½ºÆ®¸¦ À§Çؼ ¸ÕÀú ÄÄÇ»ÅÍ¿¡ ÀÚ¹Ù Ç÷¿ÆûÀ» ¼³Ä¡ÇØ¾ß ÇÑ´Ù.
ÀÚ¹Ù Ç÷§ÆûÀº java.sun.com À¥»çÀÌÆ®¿¡¼ ÀÚÀ¯·Ó°Ô ¹Þ¾Æ¼ ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù. ÀÚ¹Ù2Ç÷§ÆûÀº À©µµ¿ìÁî 95/98/NT, Solaris, Linuxµî ´ëºÎºÐÀÇ ¿î¿µÃ¼Á¦¿¡ ¼Ä¡°¡´ÉÇÏ´Ù. ´Ù¿î·Îµå ÆäÀÌÁö¿¡´Â °¢ ¿î¿µÃ¼Á¦¿¡ µû¸¥ ¼³Ä¡¹æ¹ýÀÌ ³ª¿ÍÀÖÀ¸´Ï À̸¦ Âü°íÇϱ⠹ٶõ´Ù.
¿©±â¿¡¼´Â ¸®´ª½º ȯ°æ¿¡¼ ½ºÅ͵𸦠ÁøÇàÇϵµ·Ï ÇÑ´Ù. kernel 2.6.x, Java2¸¦ ±âº»È¯°æÀ¸·Î ÇÑ´Ù. 1.1 ÇÁ·Î±×·¥ ÀÛ¼º
±×·³ ÅØ½ºÆ® ¿¡µðÅ͸¦ ÀÌ¿ëÇØ¼ °£´ÜÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÇغ¸µµ·Ï ÇϰڴÙ. óÀ½ ¸¸µé°íÀÚ ÇÏ´Â ÇÁ·Î±×·¥Àº "Hello World"¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À¸·Î ¼Ò½ºÄÚµåÀÇ ÆÄÀÏÀ̸§Àº HelloWorld.java·Î ÇϰڴÙ. ´ÙÀ½°ú °°Àº ³»¿ëÀ¸·Î ÄÚµùÇÑ´ÙÀ½ ÀúÀåÇϵµ·Ï ÇÏÀÚ. class HelloWorld
{
public static void main(String[] argv)
{
System.out.println("Hello World");
}
}
1.2 ÄÄÆÄÀÏ Çϱâ
Àΰ£ÀÇ ¾ð¾î·Î ¸¸µé¾îÁø ÄÚµå´Â ÀÚ¹Ù VMÀÌ ÀÌÇØÇÒ ¼ö ÀÖ´Â Áß°£°á°ú¹°·Î º¯È¯½ÃÄÑÁà¾ß ÇÑ´Ù. ÀÌ °á°ú¹°Àº ÀÚ¹Ù VMÀÌ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é ¾î¶² ¿î¿µÃ¼Á¦¿¡¼µµ Àç ÄÄÆÄÀϵîÀÇ °úÁ¤ ¾øÀÌ µ¿ÀÏÇÏ°Ô ½ÇÇàµÉ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô ÀÚ¹Ù VMÀÌ ÇØ¼®ÇÒ ¼ö ÀÖ´Â ÄÄÆÄÀÏµÈ °á°ú¹°À» ¹ÙÀÌÆ®ÄÚµå(bytecode)¶ó°í ÇÑ´Ù. ¹ÙÀÌÆ®ÄÚµå´Â Ç÷§Æû(¿î¿µÃ¼Á¦)µ¶¸³ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
ÄÄÆÄÀÏÀº javac¶ó´Â Àü¿ë ÄÄÆÄÀÏ·¯¸¦ ÅëÇØ¼ °¡´ÉÇϸç, ´ÙÀ½°ú °°ÀÌ °£´ÜÇÏ´Ù. # javac HelloWorld.java
1.3 ÇÁ·Î±×·¥ÀÇ intepreting ¿Í ½ÇÇà
ÄÄÆÄÀÏÀ» ¼º°øÀûÀ¸·Î ¸¶ÃÆ´Ù¸é ÀÚ¹Ù bytecode°¡ »ý¼ºµÈ´Ù. ÀÌ bytecode´Â ÀÚ¹Ù VM¿¡ ÀÇÇØ¼ ½ÇÇàµÇ°Å³ª ÇØ¼®µÉ¼ö ÀÖÀ¸¸ç, ÇÊ¿äÇÏ´Ù¸é ÀÚ¹Ù VMÀÌ ³»ÀåµÈ IE, MozillaµîÀÇ À¥ºê¶ó¿ìÀú¿¡¼ ¾ÖÇø´ ÇüÅ·Π¼öÇàµÉ ¼öµµ ÀÖ´Ù.
¸®´ª½º¿¡¼ ÀÚ¹Ù bytecode¸¦ ÇØ¼®Çϱâ À§Çؼ º¸Åë java¸í·É¾î¸¦ ÀÌ¿ëÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ½ÇÇà½Ãų ¼ö ÀÖ´Ù. # java -classpath ./ HelloWorld¿©±â¿¡¼´Â Ŭ·¡½º °æ·Î¸¦ À§Çؼ classpath ¿É¼ÇÀ» »ç¿ëÇϰí Àִµ¥, ȯ°æº¯¼ö¸¦ ÁöÁ¤ÇØ µÎ¾ú´Ù¸é »ý·«Çصµ °ü°è ¾ø´Ù. ¼º°øÀûÀ¸·Î ½ÇÇàµÇ¾ú´Ù¸é ´ÙÀ½°ú °°Àº °á°ú¸¦ È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Hello World 1.4 ÄÄÆÄÀÏ·¯¿Í Interpreter ¹®Á¦ÀÇ ÇØ°á
¸¸¾à ÄÄÆÄÀÏÇÏ°í ½ÇÇà½Ã۴µ¥ ¹®Á¦°¡ ¹ß»ýÇß´Ù¸é Common Compiler and Interpreter Problems¸¦ Âü°íÇϱ⠹ٶõ´Ù.1.5 ÁÖ¼®1.5.1 C/C++ ½ºÅ¸ÀÏ ÁÖ¼®
ÁÖ¼®ÀÇ Çʿ伺¿¡ ´ëÇØ¼± ±»ÀÌ ¼³¸íÇÏÁö ¾Êµµ·Ï ÇϰڴÙ. ÀÚ¹ÙÀÇ ÁÖ¼®Àº C¿Í ¸Å¿ì ºñ½ÁÇÏ´Ù. ´õºí ½½·§½¬ (//)¿Í (/* */)¸¦ ¸ðµÎ »ç¿ëÇÒ ¼ö Àִµ¥, ¾î´À °ÍÀ» »ç¿ëÇÒ·±Áö´Â ¼øÀüÈ÷ °³¹ßÀÚÀÇ ±âÈ£¿¡ ´Þ¸° ¹®Á¦¶ó°í »ý°¢µÈ´Ù. ÀϹÝÀûÀ¸·Î // ´Â C++½ºÅ¸ÀÏ /* */´Â C½ºÅ¸ÀÏ·Î »ç¿ëµÇ¾îÁø´Ù. 1.5.2 Doc ÁÖ¼®
/* */ÁÖ¼®ÀÇ È®ÀåµÈ ÇüÅ·Π»ç¿ëÇÒ ¼ö ÀÖ´Â Doc ½ºÅ¸ÀÏ ÁÖ¼®ÀÌ ÀÖ´Ù. À̰ÍÀº (/** */)ÇüÅ·Π»ç¿ëÇÒ ¼ö Àִµ¥, ÀÌ·¯ÇÑ Çü½ÄÀ¸·Î ÀÛ¼ºµÉ °æ¿ì javadocÀ̶ó´Â µµ±¸¿¡ ÀÇÇØ¼ ¼Ò½ºÄÚµå ÀÚü¸¦ (API)¹®¼È Çϴµ¥ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. /** This Class display a text string at
* the console
*/
class HelloWorld
{
public static void main(String[] argv)
{
System.out.println("Hello World");
}
}
¿ì¸®°¡ ÀÛ¼ºÇÑ ÄÚµå´Â ¿ö³«¿¡³ª °£´ÜÇϱ⠶§¹®¿¡ ±»ÀÌ API ¹®¼¸¦ »ý¼ºÇؾßÇÒ Çʿ䰡 ¾øÁö¸¸, Á» Å«±Ô¸ðÀÇ º¹ÀâÇÑ Äڵ带 ¸¸µé°æ¿ì Ç¥ÁØÀûÀÎ ¹®¼È°¡ ÇÊ¿äÇÒ °ÍÀÌ´Ù. ¸¹Àº °æ¿ì ¼Ò½ºÄÚµå¿Í API¹®¼¸¦ º°µµ·Î À¯ÁöÇÏ´Â °æ¿ì°¡ ¸¹Àºµ¥, ÄÚµå¿Í ¹®¼°ú ºÐ¸®µÇ¾î¼ Á¦´ë·Î API¹®¼¸¦ À¯ÁöÇϱⰡ Èûµé¾îÁø´Ù. Doc ÁÖ¼®À» µû¸£°Ô µÇ¸é ÀÌ·¯ÇÑ ¹®Á¦¸¦ ¾î´ÀÁ¤µµ ÇØ°áÇÒ ¼ö ÀÖ´Ù.
javadoc¿¡ ´ëÇÑ ¹®¼´Â javadoc ȨÆäÀÌÁö¸¦ Âü°íÇϱ⠹ٶõ´Ù. 2 ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â
ÀÚ¹Ù·Î ¸¸µé¾îÁö´Â ¸ðµç ÇÁ·Î±×·¥Àº Ŭ·¡½º¸¦ ±âº» ±¸¼º¿ä¼Ò·Î ÇÑ´Ù. ¸ðµç Ŭ·¡½ºµéÀº ±¸Á¶°¡ °°°í ÀϹÝÀûÀÎ ¿ä¼ÒµéÀ» °øÀ¯ÇÏ°Ô µÇ¹Ç·Î, ¸¸µé¾îÁø ÀÚ¹Ù ÇÁ·Î±×·¥µéÀº ¼·Î ºñ½ÁÇÑ ¸ð½ÀÀ» °¡Áö°Ô µÈ´Ù. 3 ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Á¶Ã¼¿Í ¿ä¼Òµé
¾ÖÇø®ÄÉÀ̼ÇÀº Ŭ·¡½º·Î ºÎÅÍ »ý¼ºµÈ´Ù. ÀÌ Å¬·¡½º´Â ÆÄ½ºÄ®ÀÇ RECORD¿Í CÀÇ ±¸Á¶Ã¼¿Í ¸Å¿ì ºñ½ÁÇϸç, ÇÊµå ¾È¿¡ µ¥ÀÌÅ͸¦ ´Ù·ç°Ô µÈ´Ù. Çʵå´Â ¼·Î ´Ù·é ŸÀÔÀ» ´Ù·ê ¼ö ÀÖ°Ô µÈ´Ù. ¿¹¸¦ µé¾î ÇϳªÀÇ Çʵ忡 string, ´Ù¸¥ Çʵå´Â interget ´Ù¸¥ Çʵ忡´Â floating pointµîÀÇ Å¸ÀÔÀ» °¡Áú ¼ö ÀÖ´Ù. class¿Í record, ±¸Á¶Ã¼¿ÍÀÇ °¡Àå Å« Â÷ÀÌÁ¡À̶ó¸é µ¥ÀÌÅͻӸ¸ ¾Æ´Ï¶ó µ¥ÀÌÅ͸¦ ó¸®Çϱâ À§ÇÑ ¸Þ¼µµµå ÇÔ²² Á¤ÀÇµÉ ¼ö ÀÖ´Ù´Â Á¡ÀÏ °ÍÀÌ´Ù.
¿¹¸¦ µé¾î ¹®ÀÚ¿À» ´Ù·ç´Â °£´ÜÇÑ Å¬·¡½º°¡ ÀÖ´Ù°í ÇÑ´Ù¸é, ÀÌ Å¬·¡½º´Â ¹®ÀÚ¿À» ÀúÀåÇϱâ À§ÇÑ µ¥ÀÌÅÍ¿Í ÀÌ µ¥ÀÌÅ͸¦ ´Ù·ç±â À§ÇÑ ¸Þ¼µå, Áï ¹®ÀÚ¿ ¼³Á¤, ȸéÀ¸·ÎÀÇ Ãâ·Â, ´Ù¸¥ Ŭ·¡½º·ÎÀÇ Àü¼Û°ú °°Àº ¸Þ¼µå¸¦ °¡Áö°Ô µÈ´Ù. µ¥ÀÌÅ͸¦ ´Ù·ç´Â ¸Þ¼µå¸¦ Ưº°È÷ accessor ¸Þ¼µå¶ó°í ºÎ¸¥´Ù.
¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀº main ¸Þ¼µå¸¦ °¡Áø Ŭ·¡½º¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ÀÌ Å¬·¡½º´Â ÇÁ·Î±×·¥ÀÇ ÁøÀÔÁ¡(entry point)°¡ µÇ¸ç, Ŭ·¡½º À̸§Àº ¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÇà½Ã۱â À§Çؼ ÀÚ¹Ù ÀÎÅÍÇÁ¸®ÅÍ¿¡ Àü´ÞµÈ´Ù.
main ¸Þ¼µå¿¡ ÀÖ´Â ÄÚµå´Â ÇÁ·Î±×·¥ ½ÃÀ۽à °¡Àå ¸ÕÀú ½ÇÇàµÈ´Ù.
¾Æ·¡ÀÇ ÄÚµå´Â 1Àå¿¡¼ ´Ù·ç¾ú´ø ¿¹Á¦ ÇÁ·Î±×·¥ÀÌ´Ù. ¿©±â¿¡´Â Çʵå¿Í accessor ¸Þ¼µå¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸¸ç, ÇϳªÀÇ main ¸Þ¼µå¸¸À» °¡Áö°í ÀÖÀ» »ÓÀÌ´Ù. class ExampleProgram
{
public static void main(String[] args)
{
System.out.println("Im a Simple Program");
}
}
public static void Ű¿öµå´Â ÀÚ¹Ù °¡»ó ¸Ó½Å(JVM)ÀÎÅÍÇÁ¸®ÅÍ¿¡°Ô ÇÁ·Î±×·¥ÀÇ main ¸Þ¼µå¸¦ ¾î¶² ÀνºÅϽºÀÇ »ý¼º¾øÀÌ(static) ½ÇÇàÇϸç(public), ÇÁ·Î±×·¥ÀÌ ³¡³µÀ» ¶§ JVM¿¡°Ô ¾î¶°ÇÑ °ªµµ ¸®ÅÏÇÏÁö ¾ÊÀ»(void)°ÍÀÓÀ» ¾Ë·ÁÁØ´Ù.
¿©±â¿¡¼ ÀνºÅϽº¶õ Ŭ·¡½º¸¦ ½ÇÇఴü¸¦ ¸»ÇÑ´Ù. ¾î¶² µ¥ÀÌÅ͸¦ ´Ù·ç´Â ½ÇÁúÀûÀÎ ÀÏÀ» Çϱâ À§Çؼ´Â ÀνºÅϽº¸¦ »ý¼º½ÃÄÑ¾ß ÇÑ´Ù. ¾Æ·¡´Â ExampleProgram Ŭ·¡½º·Î ºÎÅÍ FirstInstance, SecondInstance, ThirdInstance¸¦ »ý¼º½ÃŲ ±×¸²ÀÌ´Ù.
main ¸Þ¼µå´Â staticÀÓÀ¸·Î JVMÀÎÅÍÇÁ¸®ÅͰ¡ ÀνºÅϽºÀÇ »ý¼º¾øÀÌ ¹Ù·Î ½ÃÀ۵ȴÙ.
main ¸Þ¼µå´Â ExampleProgram Ŭ·¡½º·Î ºÎÅÍ ¾î¶°ÇÑ ÀνºÅϽºµµ »ý¼ºÇÏÁö(»ý¼ºÇÒ Çʿ䰡 ¾ø¾î¼) ¾Ê°í ÀÖ´Ù. ExampleProgramÀº ´ÜÁö System.out.printlnÀ» È£ÃâÇϰí ÀÖ´Ù. java.lang.SystemŬ·¡½º´Â PrintStreamŸÀÔÀ» °¡Áö´Â out Çʵ带 °¡Áö°í ÀÖÀ¸¸ç, ¿ì¸®´Â PrintStreamŬ·¡½ºÀÇ print (ln)¸Þ¼µå¸¦ ºÒ·¯¿Í¼ »ç¿ëÇÏ°Ô µÈ´Ù. 4 Çʵå¿Í ¸Þ¼µå
LessonTwoA.java ÇÁ·Î±×·¥Àº ¹®ÀÚ¿À» ÀúÀåÇϱâ À§ÇÑ static text Çʵ带 °¡Áö°í ÀÖ´Ù. ÀÌ ÅØ½ºÆ® Çʵå´Â LessonTwoA Ŭ·¡½ºÀÇ ¾î¶°ÇÑ ÀνºÅϽºÀÇ »ý¼º¾øÀÌ out.println¿¡ ÀÇÇØ¼ °ð¹Ù·Î È£ÃâµÈ´Ù. class LessonTwoA
{
static String text="Im a Simple program";
public static void main(String[] args)
{
System.out.println(text);
}
}
LessonTwoB.java ÇÁ·Î±×·¥°ú LessonTwoC.java ÇÁ·Î±×·¥Àº Á»´õ º¹ÀâÇÏ´Ù. À̵éÀº ¹®ÀÚ¸¦ Ãâ·ÂÇÏ´Â getText ¸Þ¼µå¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù.
LessonTwoB.java ÇÁ·Î±×·¥Àº static text Çʵå¿Í non-static getText ¸Þ¼µå¸¦ °¡Áö°í ÀÖ´Ù. None-static ¸Þ¼µå¿Í ÇʵåµéÀº ¸Þ¼µå¿Í ÇʵåÀÇ ÀνºÅÏÆ®·Î ºÎÅÍ È£Ã⠵ȴÙ. ´ÙÀ½ ¿¹Á¦´Â static text Çʵå¿Í non-static ÀνºÅϽº ¸Þ¼µåÀÎ getStaticText¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù. class LessonTwoB {
String text = "I'm a Simple Program";
static String text2 = "I'm static text";
String getText(){
return text;
}
String getStaticText(){
return text2;
}
public static void main(String[] args){
LessonTwoB progInstance = new LessonTwoB();
String retrievedText = progInstance.getText();
String retrievedStaticText =
progInstance.getStaticText();
System.out.println(retrievedText);
System.out.println(retrievedStaticText);
}
}
5 AppletsÀÇ »ý¼º
Ŭ·¡½º·Î ºÎÅÍ »ý¼ºµÈ´Ù´Â Á¡¿¡¼ ¾ÖÇø®ÄÉÀ̼ǰú ¾ÖÇø´Àº ¼·Î °°´Ù. ±×·¯³ª ¾ÖÇø´Àº main ¸Þ¼µå¸¦ °¡ÁöÁö ¾ÊÀ¸¸ç ´ë½Å ¾ÖÇø´À» ¸¸µé±â À§ÇØ Á¤ÇØÁø ¸Þ¼µå¸¦ »ç¿ëÇØ¼ Á¦ÀÛÇÑ´Ù. 5.1 ¾ÖÇø´
´ÙÀ½Àº °£´ÜÇÑ ¾ÖÇø´À̸ç, ¾ÖÇø´ÀÌ ¾î¶² ¹æ½ÄÀ¸·Î ÀÛ¼ºµÇ¸ç, ½ÇÇà½Ã ¾î¶² ¸ð½ÀÀ» °¡Áö´ÂÁö¸¦ º¸¿©ÁØ´Ù.
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
public class SimpleApplet extends Applet{
String text = "I'm a simple applet";
public void init() {
text = "I'm a simple applet";
setBackground(Color.cyan);
}
public void start() {
System.out.println("starting...");
}
public void stop() {
System.out.println("stopping...");
}
public void destroy() {
System.out.println("preparing to unload...");
}
public void paint(Graphics g){
System.out.println("Paint");
g.setColor(Color.blue);
g.drawRect(0, 0,
getSize().width -1,
getSize().height -1);
g.setColor(Color.red);
g.drawString(text, 15, 25);
}
}
5.1.1 AppletÀÇ ½ÇÇà
¾ÖÇø´Àº ´Üµ¶À¸·Î ½ÇÇàµÉ ¼ö ¾øÀ¸¸ç HTML Äڵ忡 ÀÓº£µðµå µÇ¾î¼ ½ÇÇà µÉ ¼ö ÀÖ´Ù. <HTML> <BODY> <APPLET CODE=SimpleApplet.class WIDTH=200 HEIGHT=100> </APPLET> </BODY> </HTML>¾ÖÇø´ÀÇ ½ÇÇà¿©ºÎ¸¦ Á¦´ë·Î È®ÀÎÇϱâ À§Çؼ´Â À¥ºê¶ó¿ìÀú¸¦ ÀÌ¿ëÇØ¼ Àоî¾ß °ÚÁö¸¸ appletviewr ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¸é °£´ÜÇÏ°Ô È®ÀÎÇÒ ¼ö ÀÖ´Ù. # appletviewer simpleapplet.htmlJava2 API¸¦ ³»ÀåÇÑ ºê¶ó¿ìÀúÀÇ °æ¿ì ¾ÖÇø´À» Á¦´ë·Î ½ÇÇà½Ãų·Á¸é ¹Ýµå½Ã Java 2 Ç÷§ÆûÀ» Áö¿øÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¸¸¾à ºê¶ó¿ìÀú°¡ Java2 Ç÷§ÆûÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù¸é appletviewerÀ» ÀÌ¿ëÇØ¼ ½ÇÇà½ÃŰ°Å³ª Java Ç÷¯±×ÀÎÀ» ¼³Ä¡ÇØ¾ß ÇÑ´Ù. 5.2 ¾ÖÇø´ÀÇ ±¸Á¶¿Í ¿ä¼Òµé
Java APIÀÇ AppletŬ·¡½º¸¦ ÀÌ¿ëÇÏ¸é ¾ÖÇø´ÀÇ ÀÛµ¿°ú µðÀÚÀε °üÇÑ Á¦¾î¸¦ ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ Panel°ú °°Àº GUI ÄÄÆ÷³ÍÆ®µµ (¿ÏÀüÇÏÁø ¾ÊÁö¸¸) Á¦°øÀ» ÇÑ´Ù. ¾ÖÇø´À» »ý¼ºÇϱâ À§Çؼ´Â Applet Ŭ·¡½º¿¡¼ È®ÀåµÈ Ŭ·¡½º¸¦ ¸¸µé°í ÇÊ¿äÇÑ Äڵ带 ÀÔ·ÂÇÏ¸é µÈ´Ù.
¾ÖÇø´Àº º¸Åë Panel À§¿¡ ÀԷ¹öư, ½ºÅ©·Ñ¹Ù, text areaµîÀÇ GUI ÄÄÆ÷³ÍÆ®ÀÇ Á¶ÇÕÀ¸·Î ÀÌ·ç¾îÁø´Ù.
SimpleApplet Ŭ·¡½º´Â Applet Ŭ·¡½º·Î ºÎÅÍ È®ÀåµÈ´Ù. Applet´Â Container ·ÎºÎÅÍ È®ÀåµÇ°í Container Ŭ·¡½º´Â Object Ŭ·¡½º·Î ºÎÅÍ È®ÀåµÈ´Ù. Object Ŭ·¡½º´Â ¸ðµç ÀÚ¹Ù API classÀÇ ºÎ¸ð Ŭ·¡½º°¡ µÈ´Ù.
À§ÀÇ ¾ÖÇø´ ¿¹Á¦¿¡¼ Applet Ŭ·¡½º´Â init, start, stop, destory, paintµîÀ» »ç¿ëÇϰí ÀÖ´Ù. 6 ÀÚ¹ÙÀÇ µ¥ÀÌÅÍ Àü´Þ ¹æ½Ä
C, C++À» ÇÏ´Ù°¡ ÀÚ¹Ù¸¦ ÇÏ°ÔµÇ¸é °¡Àå Çò°¥¸®±âµµ Çϰí Áß¿äÇϱ⵵ ÇÑ °³³äÀÌ ¹Ù·Î call by value, call by reference ÀÌ´Ù. Áö±Ýµµ ²Ï³ª ÀÚ¹Ù ÇϽźе鳢¸®µµ ¿©±â¿¡ ´ëÇÑ ³í¶õÀÌ ¸¹À¸¸ç Á¤È®ÇÏ°Ô °³³äÀ» ¸ø Àâ°í °è½ÅºÐµéµµ ¸¹´Ù. Call by reference´Â ¶ÇÇÑ ±× ±â´ÉÀû ÀÇ¹Ì¿Í ¸í½ÃÀû ÀÇ¹Ì ¶§¹®¿¡ ³í¶õÀÇ ºÒ¾¾°¡ µÇ±âµµ ÇÑ´Ù. ÀÏ´Ü ÀÚ¹Ù¿¡¼´Â primitive type µ¥ÀÌÅÍ´Â ¸ðµÎ value·Î ÀúÀåµÈ´Ù. Áï, int, long, ... ÀÌ·±°ÍµéÀÌ´Ù. int a; ¶óÇϸé int* a°¡ ¾Æ´Ï°í int aÀΰÍÀÌ´Ù. C¿Í ¶È°°´Ù. ±×¸®°í ³ª¸ÓÁö ObjectÇüÀº ¸ðµÎ ³»ºÎÀûÀ¸·Ð Æ÷ÀÎÅÍ´Ù. ¹°·Ð ¿ÜÀûÀÎ Æ÷ÀÎÅÍ °³³äÀº ÀÚ¹Ù¿¡ ¾ø´Ù. (µÚ¿¡ ¾ê±âÇϰÚÁö¸¸ À̰Ͷ§¹®¿¡ call by reference°¡ ÀÚ¹Ù¿£ ¾ø´Ù´Â ¾ê±â°¡µÈ´Ù) Áï, Vector a; ´Â Vector* a; ³ª ¸¶Âù°¡ÁöÀÌ´Ù. ±×·¡¼ ÀÚ¹Ù´Â C¿Í ´Ù¸£°Ô Vector a; if (a == null) ÀÌ°Ô ¼º¸³µÇ´Â°ÍÀÌ´Ù. ¿Ö³Ä¸é a´Â ÀνºÅϽº°¡ ¾Æ´Ï°í ¾ÆÁ÷ ¸Þ¸ð¸®ÇÒ´ç ¹ÞÁö¾ÊÀº Æ÷ÀÎÅÍÀ̹ǷÎ... ¶ÇÇÑ ´ç¿¬È÷ a = new Vector(); ÀÌ·¸°Ô newÇØÁà¾ß »ç¿ëÇÒ¼öÀÖ´Ù. ±×·¯³ª °ÑÀ¸·Ð Vector a ÀÌ¸ç ¸â¹ö¿¡ ¿¢¼¼½ºµµ a. ÀÌ·¸°Ô ¿¢¼¼½ºÇÑ´Ù. ±×·¯³ª »ç½Ç . Àº -> À̰Ŷó°í º¸¸éµÈ´Ù. C++¿¡¼± newÇѰͿ¡ ´ëÇØ ¸Å¿ì ÁÖµµ¸é¹ÐÇÏ°Ô deleteÇØÁà¾ß ÇÑ´Ù. Ç㳪 ÀÚ¹Ù¿£ delete°¡ ¾ø´Ù. ±×·³ ¾ðÁ¦ ¸Þ¸ð¸®°¡ ÇØÁ¦µÇ´À³Ä. Garbage Collection¿¡ ÀÇÇØ¼ ±× ¸Þ¸ð¸®¸¦ ÂüÁ¶Çϴ°ÍÀÌ ÀüÇô ¾øÀ»¶§ ¾Ë¾Æ¼ ÇØÁ¦µÈ´Ù. ÀÚ¹ÙÀÇ ¸Þ¸ð¸® Ư¡À» ¹øÈ£¸¦ ºÙ¿©°¡¸é¼ º¸ÀÚ.
¸ðµç ÀÎÀÚ´Â Vector Ŭ·¡½º·Î ÇϰÚÀ¸¸ç Vector a ´Â Vector* a À̸ç a.data ´Â a->data ¶õ°É »ó±âÇ϶ó. Vector a = new Vector() µÈ°É·Î °¡Á¤ÇÑ´Ù.
1. new´Â ÀÖµÇ delete´Â ¾ø´Ù.
ÀÎÀÚ·Î newµÈ a¸¦ ³Ñ°ÜÁÖ°í ¹ÞÀºÂÊ¿¡¼ Vector b = a; Çϸé À̰÷À» ÂüÁ¶ÇÏ´Â °´Ã¼°¡ 2°³°¡ µÈ´Ù. ÀÌÂÊ¿¡¼ °´Ã¼ÀÇ ¹üÀ§°¡ ³¡³ª¸é ÂüÁ¶ÀÚ´Â 1°³°¡ µÉ°ÍÀ̰í ÀúÂÊ¿¡¼µµ ¹üÀ§°¡ ³¡³ª¼ »ç¿ë¾ÈÇÏ°Ô µÇ¸é 0ÀÌ µÉ°ÍÀÌ´Ù. ±×·³ ÀûÁ¤½ÃÁ¡¿¡¼ garbage collectionÀÌ ÀϾÙ. ¿©ÇÏÆ° ±× °´Ã¼¸Þ¸ð¸®¸¦ ÂüÁ¶Çϰí Àִ°÷ÀÌ Çϳªµµ ¾øÀ»¶§ ÀÚµ¿À¸·Î GC°¡ ÀϾ¸ç ±×¶§±îÁø ±× °´Ã¼°¡ ·ÎÄùüÀ§´ø ¾î¶»µç »ó°ü¾øÀÌ ³²¾ÆÀְԵȴÙ(newÀ̹ǷΠ´ç¿¬ÇѰÍÀÌ ¾Æ´Ñ°¡. C¿¡¼µµ newµÈ°ÍÀº deleteÇϱâÀü±îÁø ³²¾ÆÀִٴ°ÍÀ» »ó±âÇ϶ó) À̰ÍÀ» º¼¶§ GCÀÇ °¡Àå Áß¿äÇÑ ±â´ÉÀÌ Thread safeÇÏ°Ô ¸ðµç ÀνºÅϽº¸¦ ÂüÁ¶Çϰí ÀÖ´Â Ä«¿îÅ͸¦ °è¼Ó ÃßÀûÇϰí ÀÖ´Ù°¡ ±×°ÍÀÌ 0ÀÌ µÉ¶§ »èÁ¦Çϴ°ÍÀÌ´Ù.
2. Æ÷ÀÎÅÍ °³³äÀ̹ǷΠÀúÂÊ¿¡¼ °ªÀ» ¹Ù²Ù¸é ÀÌÂÊ¿¡¼µµ ¹Ù²ãÁø´Ù.
ÀÎÀÚ·Î newµÈ a¸¦ ³Ñ°ÜÁÖ°í ÀúÂÊ¿¡¼ a.data = 6; ÀÌ·±½ÄÀ¸·Î °ªÀ» ³ÖÀ¸¸é ÀÌÂÊ¿¡¼µµ ±× ¹Ù²ï°Ô Àû¿ëµÈ´Ù (Æ÷ÀÎÅÍÀ̹ǷÎ,, °°Àº ÁÖ¼ÒÀÇ °´Ã¼ÀÇ ¸â¹ö¸¦ ¹Ù꿧À¸¹Ç·Î ´ç¿¬È÷ ¹Ù²î´Â°ÍÀÌ´Ù). ¶§¹®¿¡ °£È¤ ÂüÁ¶½ÄÀ¸·Î °´Ã¼¸¦ »ç¿ëÇÏ°í ½ÍÁö¾Ê°í º¹»ç½ÃÄÑ »ç¿ëÇÏ°í ½ÍÀ»¶© ¸ðµç °´Ã¼°¡ °¡Áö°í ÀÖ´Â clone() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¿© º¹»çÇÏ¿©¾ß ÇÑ´Ù.
3. primitive type Àº call by valueÀÌ´Ù.
intÇü ÀÎÀÚ°°Àº°ÍÀº ±×³É °ªÀ¸·Î ³Ñ¾î°£´Ù int* °¡ ¾Æ´Ï´Ù. ±×·¯¹Ç·Î ¶§·Ð C¿¡¼ÀÇ int*¿Í °°ÀÌ º¯¼öÁÖ¼Ò°ªÀ» ³Ñ°Ü¼ ¾î¶²°ªÀ» ¹Þ°í½Í¾îµµ ±×³ÉÀº ¾ÈµÈ´Ù. ¸í½ÃÀûÀÎ Æ÷ÀÎÅÍ »ç¿ëÀº ¾øÀ¸¹Ç·Î. ´ë½Å Integer°°Àº integerÇü °´Ã¼¸¦ »ç¿ëÇÏ¿©µµµÇ°í(°´Ã¼´Â Æ÷ÀÎÅÍ ¹æ½ÄÀ̹ǷÎ) ¾Æ´Ï¸é °´Ã¼¼Ó¿¡ ¸â¹öº¯¼ö¸¦ ³Ö¾î¼ °´Ã¼¸¦ ³Ñ°Üµµ µÉ°ÍÀÌ´Ù.
4. String °°Àº°Í¿¡ Âø°¢ÇÏÁö¸¶¶ó
ÀÌÂÊ¿¡¼ String a = "abc"; Çϰí a¸¦ ÀÎÀÚ·Î ³Ñ°å´ÙÄ¡ÀÚ. ÀúÂÊ¿¡¼ ÀÎÀÚ·Î ¹ÞÀº b¿¡¼ b = "123"; ÇÑ´Ù°í ÇØ¼ ÀÌÂÊÀÇ a°¡ "123"ÀÌ µÇÁö ¾Ê´Â´Ù. ¾î? Æ÷ÀÎÅͽÄÀ̶ó´õ´Ï? ÇÏ¸é ¾ÈµÈ´Ù. "xxx"ÇÏ´Â ÀÚü°¡ »õ·Î¿î ¸Þ¸ð¸®¿¡ xxx¸¦ »ý¼ºÇÏ°í ±× ¸Þ¸ð¸®ÁÖ¼Ò¸¦ »õ·Î °¡¸®Å°°í Àִ°ÍÀÌ´Ù. Áï ÀÎÀÚ·Î ¹ÞÀº b°¡ ÷¿£ a¸¦ °¡¸®Å°°í ÀÕ¾úÁö¸¸ b = "123"ÇÒ¶§ "123"ÀÌ »õ·Î¿î ÁÖ¼Ò°ø°£¿¡ ÀÚ¸®Àâ°í ±×°÷À» °¡¸®Å°°í Àմ°ÍÀÌ´Ù.
5. ** ´Â ¾ø´Ù.
¸ðµç °´Ã¼´Â *(Æ÷ÀÎÅÍ) ÇüÀÌ´Ù. ±×·¯³ª ¸í½ÃÀûÀÎ * »ç¿ëÀº ¾ø´Ù. °í·Î ** ÀÌ°Ô ³ª¿Ã¼ö´Â ¾ø´Ù. ±×·¯¹Ç·Î ÀÌÂÊ¿¡¼ °´Ã¼ÁÖ¼Ò°ªÀ» ÀúÀåÇϰí ÀÖ´Â º¯¼ö¸¦ ³Ñ°Ü¼ ÀúÂÊ¿¡¼ ´Ù¸¥ °´Ã¼¸¦ °¡¸®Å°°Ô ¸¸µé¼ö ¾ø´Ù´Â°ÍÀÌ´Ù.
C¿¡¼± ´ç¿¬È÷ µÈ´Ù. **ÀÌ·¸°Ô 2°³½á¼.. ¶ÇÇÑ C++ó·³ Vector a; ÀÚü°¡ VectorÀνºÅϽº°¡ µÈ´Ù¸é * À̰ŠÇѰ³·Îµµ ¿øÇÏ´Â °á°ú¸¦ ³ºÀ»¼ö ÀÖ´Ù. Ç㳪 ÀÚ¹Ù¿¡¼± ¸ðµç °´Ã¼´Â * À̸ç & À̰͵µ ¾ø´Ù. ¹Ù·Î ¿©±â¿¡¼ call by referenceÀÇ È¥µ¿ÀÌ ¿À´Â°ÍÀÌ´Ù.
call by refercnceÀÇ ±â´ÉÀûÀÎ Ãø¸éÀ¸·Î º»´Ù¸é ÀÚ¹Ù´Â call by reference°¡ µÈ´Ù.Áï °´Ã¼´Â ´Ù Æ÷ÀÎÅÍ·Î ³Ñ¾î°¡¹Ç·Î ÀúÂÊ¿¡¼ ÀÌÂÊ °´Ã¼ÀÇ ¸â¹öº¯¼ö°ªÀ» ¹Ù²Ü¼ö°¡ ÀÖÀ¸´Ï±î. Ç㳪 »ç½Ç ÀÚ¹Ù¿¡¼± ÀÌÂÊ º¯¼ö ÀúÂÊ º¯¼ö °³³äÀÌ ¾ø´Ù°í º¸¸éµÇ°Ù´Ù. ÀüºÎ newµÇ°í GC¿¡¼ ¾Ë¾Æ¼ 󸮵ǹǷÎ.. ¿©Æ° ÀÌ·± ±â´É¶§¹®¿¡ call by reference°¡ µÈ´Ù°íµé »ý°¢ÇÑ´Ù. ¿ä·± ±â´É¿¡¼´Â ¸Â´Ù°í ÇÒ ¼ö ÀÖ°Ú´Ù.
call by referenceÀÇ »çÀüÀû Àǹ̷μ º»´Ù¸é ÀÚ¹Ù´Â call by reference°¡ ¾ÈµÈ´Ù. ÀÌ´Â ¼± »çÀÌÆ®ÀÇ ¹®¼¿¡µµ ³ª¿ÍÀÖ´Ù°í ´©±º°¡ ¾ê±â´Â Çß´õ¶ó¸¸¼µµ. ¿©±â¼ÀÇ call by referenceÀÇ Àǹ̴ ÀúÂÊ¿¡ ³Ñ±â°í ³ª¼ , ÀúÂÊ¿¡¼ ÀÌÂÊ °´Ã¼°¡ °¡¸®Å°´Â °÷ ÀÚü¸¦ º¯È½Ãų ¼ö Àִ°ÍÀ» ÀǹÌÇÑ´Ù(°í ÇÏ´õ¶ó) Áï ** ÀÇ »ç¿ëÀ̶ó°í º¼ ¼ö ÀÖ°Ú´Ù. ±×°Ç ¾Õ¿¡¼µµ ¾ê±âÇÑ°Í Ã³·³ ¾ÈµÇ¹Ç·Î ÀÌ·± »çÀüÀû Àǹ̿¡¼± ÀÚ¹Ù´Â call by reference°¡ ¾Æ´Ï°í ¸ðµÎ call by valueÀÌ´Ù. ¿©±â¼ °´Ã¼ÀÇ ÁÖ¼Ò°ªÀ» value·Î ³Ñ±ä´Ù´Â Àǹ̴ °´Ã¼¸¦ value·Î ³Ñ±ä´Ù´Â°Ô ¾Æ´Ï¶ó ÁÖ¼Ò°ª ÀÚü¸¦ value·Î ³Ñ±ä´Ù´Â ÀǹÌÀÌ´Ù. ÁÖ¼Ò°ªÀ» ´ã°íÀÖ´Â º¯¼öÀÇ ÁÖ¼Ò°ªÀ» ³Ñ±â´Â°Í(call by reference)´Â ¾Æ´Ï¶õ°ÍÀÌ´Ù. Çѱ¹¸»ÀÌÁö¸¸ ¾î·Æ´Ù...
6. ÀÚ¹Ù¿¡¼ °´Ã¼¸â¹öÀÇ ÂüÁ¶´Â ŸÀÔ¿¡ ÀÇÁ¸ÇÏÁö ¾Ê°í ¸Þ¸ð¸®¸¦ ÂüÁ¶ÇÑ´Ù.
C++¿¡¼± ¼Óµµ¸¦ À§ÇØ ´Ù¿îij½ºÆÃµÈ °´Ã¼ÀÇ ¿À¹ö·ÎµùµÈ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´õ¶óµµ ISOF Ŭ·¡½ºÀÇ Å¸ÀÔÀ» µû¶ó¼ superŬ·¡½ºÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇÏ°Ô µÈ´Ù. ÀÌ°É ½ÇÁ¦ ¸Þ¸ð¸®ÀÇ °´Ã¼ÇüÀ» ÂüÁ¶ÇÏ°Ô ÇÒ·Á¸é virtualÀ» ¾´´Ù. ¹°·Ð virtual µÈ ¸Þ¼ÒµåµéÀº µû·Î Å×À̺íÀ» °ü¸®ÇÏ°Ô µÇ¸ç ¾à°£ÀÇ ¿À¹öÇìµå°¡ ÀÖ´Ù. ±×·¯³ª ÀÚ¹Ù´Â ¸ðµç ¸Þ¼Òµå°¡ C++ÀÇ virtualó·³ µ¿ÀÛÇÑ´Ù. ÀÚ¹Ù¿¡¼ C·Î Æ÷ÆÃÀ» ÇÏ°ÔµÈ´Ù¸é ´Ù¿îij½ºÆÃµÈ °´Ã¼ÀÇ ¿À¹ö·ÎµùµÈ ¸Þ¼Òµå°¡ ÀÖÀ»½Ã¿£ virtual·Î ¼±¾ðÇØ¾ßÇѴٴ°ÍÀ» ÀØÁö¸»ÀÚ. °£´ÜÇÑ ¿¹Á¦¸¦ ¾Æ·¡ º¸ÀδÙ. |
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|