λ°μν
π΅ νλ³ν
- λ°μ΄ν°μ Typeμ΄ λ³νλκ²
ex) μ μ(byte) μ μ€μ(float)λ κ°μ μ«μ νμ μ΄λ―λ‘ νλ³νμ΄ κ°λ₯ν¨ - λ¬Έμ(char)μ λ¬Έμμ΄(string)μ λ¬Έμλ₯Ό λ€λ£¨μ§λ§, λ¨μ λ°μ΄ν° νλ³νμ΄ λΆκ°λ₯ν¨ (λ¬Έμμ΄μ class ννλΌμ λΆκ°λ₯)
- λ¬Έμ(char)μ μ μ(int)λ νλ³νμ΄ κ°λ₯ν¨
-> λ¬Έμ(char)λ 'λ¨μΌλ¬Έμ' μ΄κ³ (A~Z,1~0,νΉμκΈ°νΈ.. λͺ¨λ μνκΈμ) , μ΄λ μ μλ‘ λ³κ²½μ΄ κ°λ₯(μμ€ν€ μ½λ ν μ°Έκ³ )
κΈ°μ΅νκΈ° [λ³μμ λ°μ΄ν° νμ ]
<κΈ°λ³Έ μλ£ν>(μ μ/μ€μ/λ¬Έμ/λΆλ¦¬μΈ)
1. μ μν : byte, short, int, long (1,2,4,8byte μμΌλ‘ λ©λͺ¨λ¦¬ μ¬μ©)
-byte: 8λΉνΈ, κ°μ λ²μ: -128 ~ 127 (2^8 = λν© 256μ ννλ²μμ΄κΈ° λλ¬Έμ μ,μμΌλ‘ νν (0ν¬ν¨))
-short : 16λΉνΈ, κ°μ λ²μ : -32,768~ 37,767
-int: 32λΉνΈ, κ°μ λ²μ: -2^31 ~ 2^31 - 1 (μ½ -2,147,483,648 ~ 2,147,483,647)
-long: 64λΉνΈ, κ°μ λ²μ: -2^63 ~ 2^63 - 1 (μ½ -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
2. μ€μ ν : float(4byte), double(8byte)
(floatμ λ°μ΄ν°κ° doubleλ‘ λ°κΏλ λΆμ ννκΈ° λλ¬Έμ <2.9999...
+floatμ κ° λμλ fλ₯Ό λΆνμΌ νκΈ° λλ¬Έμ (κΈ°λ³Έ 리ν°λ΄μ doubleμΌλ‘ νκΈ° λλ¬Έ) κ±°μ double μ¬μ©)
(+ floatμ μμ«μ 6~7μ κΉμ§λ§ νκΈ°ν¨)
(ex. float flNum = 33.12f;)
3. λ¬Έμ : char(2byte) (ex. 'A')
<μ°Έμ‘° μλ£ν>(λ¬Έμμ΄λ§)
4. λ¬Έμμ΄(λ¬Έμ₯) : String ("AAA"< λ¬Έμ₯μ΄ μλλΌ ν λ¬Έμ "A" μ¬λ λ¬Έμμ΄μ μ±μ§μ λ)*νΌμ classνμ
5. λ Όλ¦¬ν : boolean (true / false, μ°Έκ³Ό κ±°μ§μ μ μ₯ ν μ μμ)

π΅ λ°μ΄ν° νμ ν

- νλ³νμ μ’
λ₯
1. μλ νλ³ν (upcasting,묡μμ νλ³ν) : μμ λ°μ΄ν° νμ μ΄ λ ν° λ°μ΄ν° νμ μΌλ‘ μλμΌλ‘ λ³νλλ κ²
(λ°μ΄ν° μμ€μ μνμ΄ μκΈ° λλ¬Έμ μλμΌλ‘ μν λ¨)
ex) int(μ½ 20μ΅)λ₯Ό long(μ½ 20μ΅ μ΄μ) μ ν λΉν λ : μλ νλ³ν : a=b λ‘ νκΈ°ν¨
2. κ°μ νλ³ν(downcasting,λͺ μμ νλ³ν): λ ν° λ°μ΄ν° νμ μ λ μμ λ°μ΄ν° νμ μΌλ‘ λ³νλλ κ²
(λ°μ΄ν° μμ€μ μνμ΄ μμ΄μ λͺ μμ μΌλ‘ νκΈ° νκΈ° λλ¬Έμ (byte)μ κ°μ΄ (λ³νν κ²)μ΄ λΆμ)
ex) intλ₯Ό byteμ ν λΉν λ : κ°μ νλ³ν : b=(byte)c λ‘ ν
π΅ κ°μ νλ³νμ μ£Όμμ
- λ°μ΄ν° μμ€ λ°μ (Ex1 μ°Έμ‘°. byteλ 127κΉμ§λ§ λ΄μ μ μκΈ° λλ¬Έμ
128μΈ intλ₯Ό byteλ‘ νλ³ννλ€κ³ νλ©΄ νν λ²μκ° λμ΄κ°μ *overflow
-128μ΄λΌλ κ²°κ³Όκ° λνλ¨) - μμ«μ μ΄ν μλ¦Ώμ μμ€
- κ°μ λ²μμ΄κ³Ό
- μμμΉ λͺ»ν λ Όλ¦¬μ μ€λ₯
//[EX1]
package section02;
public class Ex0208 {
public static void main(String[] args) {
int intNum1 = 1;
byte byteNum1 = (byte) intNum1; // byteκ° intλ³΄λ€ μμΌλ―λ‘ byteλ‘ κ°μ νλ³ν
System.out.println(intNum1); // κ²°κ³Ό : 1
/* overflow μμ */
int intNum128 = 128;
byte byteNum128 = (byte) intNum128;
System.out.println(byteNum128); // κ²°κ³Ό : -128
}
}
βοΈ μλ νλ³ν / κ°μ νλ³ν μμ1 (μ μλΌλ¦¬ νλ³ν)
package exam03;
public class ChangeTypeExam {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num01 = 15;
long lyNum01 = 20;
byte byNum01 = 0;
//μλ νλ³ν
/* μ€λ₯Έμͺ½ κ±Έ μΌμͺ½μΌλ‘ λ£λλ€ μ¦, (int=μ½2μ΅ / long=2μ΅ ν¨λ°° μ΄κ³Ό)
* κ°λ₯
*/
lyNum01 = num01;
//κ°μ νλ³ν
/* μ€λ₯Έμͺ½ κ±Έ μΌμͺ½μΌλ‘ λ£λλ€ μ¦, (int=μ½2μ΅ / byte=μ½ 127μ΄ν)
* λΆκ°λ₯ νλ―λ‘ (byte)λ₯Ό κΈ°μ¬νμ¬ byteλ‘ λ°κΎΈμ΄μ€λ€
*/
byNum01 = (byte)num01;
int num02 = 130;
byte byNum02 = 0;
byNum02 = (byte)num02;
}
}
βοΈ μλ νλ³ν / κ°μ νλ³ν μμ2 (μ μ / λ¨μΌλ¬Έμ)
package exam03;
public class ChangeCharExam02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
char ch = 'E';
int num = 90;
int chToNum = 0;
char intToCh = ' ';
//곡백μ μ€νμ΄μ€ λ£μ΄μΌν¨
// int μ charλ μλνλ³ν
// char --> int λ‘ λ³κ²½ν λλ μλνλ³ν κ°λ₯
chToNum = ch;
// int --> char λ³κ²½ν λλ κ°μ νλ³ν
// int(μ½ 20μ΅)κ° charλ³΄λ€ νΌ (intμΈ numμ charλ‘ κ°μ νλ³ν μμΌμ€)
intToCh = (char)num;
System.out.println(chToNum);
System.out.println(intToCh);
//κ²°κ³Ό : 'E'μ ASCII μ½λ κ°μΈ 69κ° chToNumμ μ μ₯
//κ²°κ³Ό : numμ κ°μ λ‘(char) νλ³ν . ASCII μ½λμμ 90μ ν΄λΉνλ λ¬Έμ,'Z'κ° νκΈ°
}
π°tip. μ΄ν΄λ¦½μ€ ν μ€ λ³΅μ¬ : Ctrl + alt + downarrow

λ°μν