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

ÀÚ·áÇü (Data Type)°ú Çüº¯È¯ (Casting)

¸®ÅÍ·²°ú º¯¼ö

'java ¼Ò°³' >> '°´Ã¼¿Í Ŭ·¡½º' ¿¹Á¦ Áß¿¡
ac1.withdraw(500L); ¶ó´Â Äڵ尡 ³ª¿É´Ï´Ù.
¿©±â¼­ 500L °ú °°ÀÌ ¾²ÀÌ´Â ÇÁ·Î±×·¥ ¿ä¼Ò¸¦ ¸®ÅÍ·² ( Literal ) À̶ó°í ÇÕ´Ï´Ù.
¸®ÅÍ·²À» ÇÁ·Î±×·¥¿¡¼­ ´Ü¼øÇÏ°Ô '°ª' ¿¡ ÇØ´çµÈ´Ù°í »ý°¢ÇÏ¸é µË´Ï´Ù.
º¯¼ö´Â '°ª'À» ÀúÀåÇϱâ À§ÇÑ ¸Þ¸ð¸® ±â¾ï°ø°£À» ÀǹÌÇÕ´Ï´Ù.
¸®ÅÍ·²°ú º¯¼ö ¸ðµÎ ÇÁ·Î±×·¥¿¡¼­ »ç¿ëµÉ¶§´Â ƯÁ¤ ÀÚ·áÇü¿¡ ¼ÓÇÏ°Ô µË´Ï´Ù.

ÀÚ¹ÙÀÇ ÀÚ·áÇü(Data Type)

ÀÚ¹Ù¿¡¼­ »ç¿ëµÇ´Â ÀÚ·áÇüÀº ´Â µÎ °¡Áö Á¾·ù°¡ ÀÖ½À´Ï´Ù.

  • ±âº» ÀÚ·áÇü ( Primitive Type )
  • ÂüÁ¶ ÀÚ·áÇü ( Reference Type )

±âº» ÀÚ·áÇüÀº ±âÁ¸ÀÇ ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¹Ö ¾ð¾î, C ¿Í °°Àº ÀýÂ÷ÁöÇâÀû ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­ º¸¾Ò´ø ÀÚ·áÇüÀÔ´Ï´Ù. ÂüÁ¶ ÀÚ·áÇüÀº °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­ Ãß°¡µÈ ÀÚ·áÇüÀÔ´Ï´Ù.

±âº» ÀÚ·áÇü

ŸÀÔ ¼³¸í ¿¹
boolean true ¶Ç´Â false ¸¦ ³ªÅ¸³»´Â ÀÚ·áÇü boolean isTruth = true;
char 2 ¹ÙÀÌÆ® ¹®ÀÚ µ¥ÀÌÅÍ
¹®ÀÚ, À¯´ÏÄÚµå ¹®ÀÚ, Á¦¾î ¹®ÀÚ¸¦ ÀÛÀº µû¿ÈÇ¥('') ¸¦ »ç¿ëÇÏ¿© Ç¥Çö
char grade = 'A'; // ¹®ÀÚ
char ch = '\uFFFF'; // 16Áø¼ö FFFF°ª¿¡ ÇØ´çÇÏ´Â À¯´ÏÄÚµå ¹®ÀÚ
char ech = '\n'; // new line(\u000a)
char ech = '\b'; // ¹é½ºÆäÀ̽º(\u0008)
char ech = '\t'; // ÅÇ(\u0009)
char ech = '\t'; // ÅÇ(\u0009)
char ech = '\\'; // ¿ª½½·¡½Ã(\u005c)
char ech = '\"'; // Å«µû¿ÈÇ¥(\u0022)
char ech = '\''; // ÀÛÀºµû¿ÈÇ¥(\u0027)
byte 1 ¹ÙÀÌÆ® Á¤¼öÇü µ¥ÀÌÅÍ byte weight = 71;
short 2 ¹ÙÀÌÆ® Á¤¼öÇü µ¥ÀÌÅÍ short bill = 30000;
int 4 ¹ÙÀÌÆ® Á¤¼öÇü µ¥ÀÌÅÍ int balance = 56219618;
long 8 ¹ÙÀÌÆ® Á¤¼öÇü µ¥ÀÌÅÍ
¹Ýµå½Ã ¼ýÀÚ µÚ¿¡ L ¸¦ ºÙÀδÙ.
long balance = 56219000L;
float 4 ¹ÙÀÌÆ® ½Ç¼öÇü µ¥ÀÌÅÍ
¹Ýµå½Ã ¼ýÀÚ µÚ¿¡ F ³ª f ¸¦ ºÙÀδÙ.
float rate = 6.195F;
double 8 ¹ÙÀÌÆ® ½Ç¼öÇü µ¥ÀÌÅÍ double rate = 6.195;

ÀÚ¹Ù Äڵ峻¿¡¼­ 10 °ú °°Àº ¸®ÅÍ·²Àº JVM ÀÌ int ÇüÀ̶ó°í ÀνÄÇϰí, 72.5 ¿Í °°Àº ¸®ÅÍ·²Àº ·Î double ·Î ÀνÄÇÕ´Ï´Ù.

ÂüÁ¶ ÀÚ·áÇü

Account account01 = new Account();

À§´Â ÂüÁ¶ ÀÚ·áÇü¿¡ ´ëÇÑ ´ëÀÔ¹®À» º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù.
account01 ´Â Account Çü ÂüÁ¶Çü º¯¼ö(·¹ÆÛ·±½º)ÀÔ´Ï´Ù.
À§ÀÇ ´ëÀÔ¹®À» ÅëÇØ¼­ account01 ¿¡ ÀúÀåµÇ´Â °ªÀº »ý¼ºµÈ °´Ã¼ÀÇ ¸Þ¸ð¸® ÁÖ¼Ò°ªÀÔ´Ï´Ù. ÁÖÀÇÇÒ Á¡Àº account01 ¿¡ »ý¼ºµÈ °´Ã¼ ÀÚü°¡ ÀúÀåµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó´Â Á¡ÀÔ´Ï´Ù.
À§ ´ëÀÔ¹®¿¡ ÀÇÇØ¼­ account01 Àº new Ű¿öµå¸¦ »ç¿ëÇØ¼­ »ý¼ºµÈ Account Çü °´Ã¼À» Á¢±ÙÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù. °´Ã¼¿¡ Á¢±ÙÇÒ ¶§´Â .(µµÆ®)¸¦ ÀÌ¿ëÇÕ´Ï´Ù.

account01.accountNum = "1234-0983930-333";
account01.balance = 10000000L;

¸¸¾à account01 ÀÌ ¾î¶² °´Ã¼µµ °¡¸£Å°Áö ¾Êµµ·Ï ÇÏ·Á¸é null À» ÇÒ´çÇÕ´Ï´Ù.

Account account01 = null;

Çüº¯È¯(Casting)

Çüº¯È¯À̶õ º¯¼ö°¡ ÀúÀåÇϰí ÀÖ´Â °ªÀ̳ª ¸®ÅÍ·²À» ¿øÇÏ´Â ÀÚ·áÇüÀ¸·Î º¯È¯½ÃŰ´Â ÀÛ¾÷À» ÀǹÌÇÕ´Ï´Ù.

¸¸ÀÏ º¯¼ö¿Í ÇÒ´çµÇ´Â °ªÀÇ ÀÚ·áÇüÀÌ µ¿ÀÏÇÏÁö ¾Ê´Ù¸é JVM ÀÌ ÀÚµ¿ÀûÀ¸·Î Çüº¯È¯À» ÇØÁÖ´Â °æ¿ì¿Í ÇÁ·Î±×·¡¸Ó°¡ ¸í½ÃÀûÀ¸·Î Çüº¯È¯À» ÇØÁÖ¾î¾ß ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
JVM ÀÌ ÀÚµ¿ÀûÀ¸·Î Çüº¯È¯À» ÇØÁÖ´Â °æ¿ì¸¦ ¾Ï¹¬Àû Çüº¯È¯À̶ó°í ÇÏ°í ¸í½ÃÀû Çüº¯È¯À̶õ ÇÁ·Î±×·¡¸Ó°¡ Çʿ信 µû¶ó¼­ °­Á¦ÀûÀ¸·Î Çüº¯È¯À» ½ÃŰ´Â °ÍÀ» ¸»ÇÕ´Ï´Ù.
¾î¶² °æ¿ì¿¡µµ ¼±¾ðµÈ º¯¼öÀÇ ÀÚ·áÇüÀ» ¹Ù²Ü ¼ö´Â ¾ø½À´Ï´Ù.

¾Ï¹¬Àû Çüº¯È¯(Up-Casting)

long l = 3;

¸®ÅÍ·² 3 Àº ¿ø·¡ int ÇüÀ̾úÀ¸³ª long ÇüÀ¸·Î º¯°æµÈ ÈÄ °ªÀÌ ÇÒ´çµË´Ï´Ù.
ÀÌ·± °úÁ¤À» JVM ÀÌ ¾Ë¾Æ¼­ ÀÚµ¿ÀûÀ¸·Î ÇØÁֱ⠶§¹®¿¡ '¾Ï¹¬Àû Çüº¯È¯'À̶ó°í ÇÕ´Ï´Ù.

int x = 3 + 3.5 + 4; // ¿¡·¯!

ÀÚ¹Ù Äڵ忡¼­ 3.5 À̿Ͱ°ÀÌ »ç¿ëÇϸé JVM Àº À̸¦ double ÇüÀ¸·Î ÀνÄÇÕ´Ï´Ù.
ÀÚ¹ÙÅ©µå¿¡¼­ 3 °ú 4 °ú °°ÀÌ »ç¿ëÇϸé JVM Àº À̸¦ int ÇüÀ¸·Î ÀνÄÇÕ´Ï´Ù.
¿¹Á¦Ã³·³ ´Ù¸¥ ÀÚ·áÇüÀÇ °ªµéÀÌ ¿¬»ê¿¡ Âü¿©ÇÒ ¶§, ±× Áß °¡Àå Å« ÀÚ·áÇüÀ¸·Î ¾Ï¹¬Àû Çüº¯È¯ÀÌ ÀϾ´Ï´Ù.

int x = 3.0 + 3.5 + 4.0

°á°ú°ªÀÌ 10.5 ÀÎ dobule ÇüÀÌ µÉÅÙµ¥ ÀÌ °ªÀ» int Çü º¯¼ö x ¿¡ ÀúÀåÇÏ·Á Çϴ±º¿ä.
double Çü °ªÀ» int Çü º¯¼ö¿¡ ÇÒ´çÇÏ·Á°í Ç߱⠶§¹®¿¡ ÄÄÆÄÀÏ ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.

¸í½ÃÀû Çüº¯È¯(Down-Casting)

float f = 1.1; // ¿¡·¯!

º¯¼ö¿¡ °ªÀ» ´ëÀÔÇÒ ¶§ °ªÀÇ ÀÚ·áÇüÀÌ º¯¼öÀÇ ÀÚ·áÇüº¸´Ù Å©´Ù¸é ÄÄÆÄÀÏ ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.
À§¿¡¼­ double ÇüÀÇ °ªÀ» float ÇüÀÇ º¯¼ö¿¡ ´ëÀÔÇÏ·Á°í Çϱ⠶§¹®¿¡ ÄÄÆÄÀÏ ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.
ÄÄÆÄÀÏ ¿¡·¯¸¦ ¹æÁöÇÏ·Á¸é ¸í½ÃÀû Çüº¯È¯À» ÇÏ¿©¾ß ÇÕ´Ï´Ù.

float f = 1.1F; // º¯¼ö¿Í ´ëÀԵǴ °ªÀÇ ÀÚ·áÇüÀÌ µ¿ÀÏ
float f = (float)1.1; // ´ëÀԵǴ °ªÀÇ ÀÚ·áÇüÀ» ÀÎÀ§ÀûÀ¸·Î º¯¼öÀÇ ÀÚ·áÇü¿¡ ¸Â°Ô Çüº¯È¯

int º¸´Ù ÀÛÀº Á¤¼öÇü ÀÚ·áÇü¿¡¼­ »ê¼ú¿¬»ê½Ã ÁÖÀÇÇÒ »çÇ×

int º¸´Ù ÀÛÀº Å©±âÀÇ Á¤¼öÇü ÀÚ·áÇü¿¡¼­ÀÇ »ê¼ú¿¬»êÀº ¼öÇàÇÒ ¶§ int ÇüÀ¸·Î º¯È¯µÇ¾î °è»êµË´Ï´Ù.
int, long, float, double Çü¿¡¼­´Â ÀÌ·± ¹®Á¦°¡ ÀϾÁö ¾Ê½À´Ï´Ù.

short s1 = 1;
short s2 = 2;
short sum = s1 + s2; // ¿¡·¯!

s1 , s2 °¡ ÀúÀåÇϰí ÀÖ´Â °ªÀÌ ¿¬»ê¿¡ Âü¿©ÇÏ°Ô µÇ¸é ¸ðµÎ int ÇüÀ¸·Î Çüº¯È¯ µÇ¹Ç·Î °è»ê°á°ú´Â int ÇüÀÌ µË´Ï´Ù. µû¶ó¼­ °è»ê°á°ú¸¦ short Çü º¯¼ö¿¡ ÀúÀåÇϱâ À§Çؼ­´Â ¾Æ·¡¿Í °°Àº ¸í½ÃÀû Çüº¯È¯ÀÌ ÇÊ¿äÇÕ´Ï´Ù.

short sum = (short)(s1 + s2);
¾Æ·¡ Ãâ·Â°ªÀº ?
int x = 10;
int y = 4;
int z = x / y;
System.out.println(z);

10 À» 4·Î ³ª´©¸é 2.5 °¡ µË´Ï´Ù.
ÇÏÁö¸¸ x ¿Í y °¡ ¸ðµÎ int Çü º¯¼öÀ̹ǷΠ±× °è»ê°á°ú ¿ª½Ã int ÇüÀÔ´Ï´Ù.
±×·¡¼­ 2.5 °¡ ¾Æ´Ï°í 2 °¡ Ãâ·ÂµË´Ï´Ù.

z º¯¼ö¸¦ double ÇüÀ¸·Î ¹Ù²Ù°í 2.5 °¡ Ãâ·ÂµÇ°Ô ÇÏ·Á¸é ?
double z = (double)x / y;

¶Ç´Â

double z = x / (double)y;

x ³ª y µÑ Áß¿¡ Çϳª¸¸ double ÇüÀ¸·Î ¸í½ÃÀû Çüº¯È¯À» ÇØÁÖ¸é µË´Ï´Ù.

ÂüÁ¶ ÀÚ·áÇü¿¡¼­ÀÇ Çüº¯È¯

ÂüÁ¶ ÀÚ·áÇüÀÎ °æ¿ì¿¡µµ ¾Ï¹¬Àû Çüº¯È¯°ú ¸í½ÃÀû Çüº¯È¯ °³³äÀÌ ÀÖ½À´Ï´Ù.
¸¸ÀÏ ·¹ÆÛ·±½º°¡ °¡¸®Å°´Â °´Ã¼µéÀÌ ¼­·Î »ó¼Ó °ü°è¿¡ ÀÖ´Ù¸é À̵é»çÀÌ¿¡ Çüº¯È¯ÀÌ °¡´ÉÇÕ´Ï´Ù.

ºÎ¸ðŬ·¡½º parent01 = new ºÎ¸ðŬ·¡½º();

ÀÚ½ÄŬ·¡½º child01 = new ÀÚ½ÄŬ·¡½º();

¸ðµÎ°¡ ¾Æ´Â Á¤»óÀûÀÎ »óȲÀÔ´Ï´Ù.

ÂüÁ¶ ÀÚ·áÇü¿¡¼­ÀÇ ¾Ï¹¬Àû Çüº¯È¯
ºÎ¸ðŬ·¡½º parent02 = new ÀÚ½ÄŬ·¡½º();

ºÎ¸ðÇüÀÇ ÂüÁ¶Çü º¯¼ö°¡ ÀÚ½Ä Å¬·¡½º ÇüÀÇ °´Ã¼¸¦ °¡¸®Å³ ¼ö ÀÖ½À´Ï´Ù.
ºÎ¸ðŬ·¡½º°¡ ¹üÀ§°¡ ÀÚ½Ä Å¬·¡½ºº¸´Ù ´õ ³Ð±â¿¡ ¾Ï¹¬Àû Çüº¯È¯(Up-Casting)ÀÌ ÀÚµ¿ÀûÀ¸·Î ÀϾ´Ï´Ù.
ÀÌ·² °æ¿ì ·¹ÆÛ·±½º parent02 ·Î ÇÒ Á¢±ÙÇÒ ¼ö ÀÖ´Â ÀڽݴüÀÇ ¸â¹ö´Â ºÎ¸ð·ÎºÎÅÍ »ó¼Ó¹ÞÀº ¸â¹ö¸¸ °¡´ÉÇÕ´Ï´Ù.

ÂüÁ¶ ÀÚ·áÇü¿¡¼­ÀÇ ¸í½ÃÀû Çüº¯È¯
ºÎ¸ðŬ·¡½º parent02 = new ÀÚ½ÄŬ·¡½º();
ÀÚ½ÄŬ·¡½º child02 = (ÀÚ½ÄŬ·¡½º)parent02;

child02 ´Â ÀÚ½ÄŬ·¡½º ÇüÀÇ ·¹ÆÛ·±½ºÀÔ´Ï´Ù.
= ¿À¸¥ÂÊ ½ÄÀº parent02 ·¹ÆÛ·±½ºÀÇ ÂüÁ¶°ªÀ» ÀÚ½ÄŬ·¡½º ÇüÀ¸·Î ¸í½ÃÀûÀÎ Çüº¯È¯À» ¼öÇàÇϰí ÀÖ½À´Ï´Ù.

String Ŭ·¡½º : ÀÚ¹Ù ÇÁ·Î±×·¥¿¡¼­ ¹®ÀÚ¿­À» »ç¿ëÇÏ·Á¸é

ÀÚ¹Ù¿¡¼­ ¹®ÀÚ¿­À» Ç¥ÇöÇÏ´Â ¹æ¹ýÀº String Ŭ·¡½º·ÎºÎÅÍ String °´Ã¼¸¦ »ý¼ºÇÏ¿© »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
String Ŭ·¡½º´Â ÀÚ¹Ù API ¿¡ Á¸ÀçÇϴ Ŭ·¡½ºÀÔ´Ï´Ù.
µû¶ó¼­ Strng Çü ·¹ÆÛ·±½º¸¦ ¼±¾ðÇϰí new Ű¿öµå¸¦ »ç¿ëÇØ¼­ ·¹ÆÛ·±½º¿¡ ÇÒ´çÇÑ ´ÙÀ½ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
¸¸¾à ¿ì¸®ÀÇ ÇÁ·Î±×·¥¿¡¼­ "¾È³çÇϼ¼¿ä" ¶ó´Â ¹®ÀÚ¿­ÀÌ ÇÊ¿äÇÏ´Ù°í ÇÏ¸é ¾Æ·¡ ÄÚµåó·³ String °´Ã¼¸¦ »ý¼ºÇÏ°í ·¹ÆÛ·±½º¿¡ ÇÒ´çÇÏ¿© »ç¿ëÇÏ¸é µË´Ï´Ù.

String hello = new String("¾È³çÇϼ¼¿ä");

±×·±µ¥ ÀÚ¹Ù¿¡¼­´Â ´ÙÀ½À» Çã¿ëÇϰí ÀÖ½À´Ï´Ù.

String hello = "¾È³çÇϼ¼¿ä";

ÀÌ´Â ÇÁ·Î±×·¥¿¡¼­ ¹®ÀÚ¿­ÀÌ ±âº» ÀÚ·áÇüó·³ ÀÚÁÖ »ç¿ëµÇ¹Ç·Î ¸¶Ä¡ ±âº» ÀÚ·áÇüÀ» »ç¿ëÇÏ´Â °Íó·³ ¾µ ¼ö ÀÖµµ·Ï ¹è·ÁÇÑ °ÍÀÔ´Ï´Ù.
String Ŭ·¡½º´Â ¹®ÀÚ¿­À» ´Ù·ç´Â ´Ù¾çÇÑ ¸Þ¼Òµå¸¦ÀÌ Á¸ÀçÇÕ´Ï´Ù.
±× Áß ¿©±â¼­´Â equals ¸Þ¼Òµå¸¦ ¼Ò°³ÇÕ´Ï´Ù.
equals ¸Þ¼Òµå´Â Object Ŭ·¡½º·ÎºÎÅÍ »ó¼Ó¹ÞÀº ¸Þ¼ÒµåÀÔ´Ï´Ù.
±×·±µ¥ String Ŭ·¡½º¿¡¼­´Â equals ¸Þ¼Òµå¸¦ String °´Ã¼°¡ ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÇ ³»¿ëÀ» ºñ±³Çϵµ·Ï ¿À¹ö¶óÀ̵ù(ÀçÁ¤ÀÇ)Çß½À´Ï´Ù.
µû¶ó¼­ String °´Ã¼ÀÇ equals ¸Þ¼Òµå´Â ÀÚ½ÅÀÇ ¹®ÀÚ¿­°ú equals ÀÇ ÆÄ¶ó¹ÌÅÍ·Î Àü´ÞµÇ´Â ¹®ÀÚ¿­ÀÇ ³»¿ëÀ» °Ë»çÇØ¼­ ³»¿ëÀÌ °°À¸¸é true, °°ÀÌ ¾ÊÀ¸¸é false ¸®ÅÏÇÕ´Ï´Ù.
(Object Ŭ·¡½ºÀÇ equals ¸Þ¼Òµå´Â ·¹ÆÛ·±½ºÀÇ ÂüÁ¶°ªÀÌ °°ÀºÁö °Ë»çÇÕ´Ï´Ù. ´Ù½Ã ¸»ÇØ ºñ±³ÇÏ´Â ·¹ÆÛ·±½º°¡ °°Àº °´Ã¼¸¦ °¡¸®Å°´ÂÁö °Ë»çÇÏ´Â °ÍÀÌÁÒ)