형 변환(Casting)
1. 형 변환(Casting)
변수는 크게 기본형, 참조형이 있고 기본형에는 8가지의 자료형이 존재한다. 
각 자료형 저장하는 값과 크기에 따라 나뉜다.
| 자료형 | 키워드 | 크기 | 
|---|---|---|
| 논리형 | boolean | 1byte | 
| 문자형 | char | 2byte | 
| 정수형 | byte | 1byte | 
| short | 2byte | |
| int | 4byte | |
| long | 8byte | |
| 실수형 | float | 4byte | 
| double | 8byte | |
| 참조형 | String | 
서로 다른 형태의 값을 대입, 계산 하거나 출력 할 수 없기 때문에 
필요 시 자료형을 변환하도록 한다. 이것을 형 변환이라고 한다.(boolean 제외) 
형 변환은 ‘자동 형 변환’, ‘강제 형 변환’으로 나뉜다.
2. 자동 형 변환(묵시적 형 변환)
- 컴파일러가 자동으로 값의 범위가 작은 자료형을 값의 범위가 큰 자료형으로 변환
- byte -> short -> int -> long -> float -> double
    - 오른쪽으로 갈수록 범위가 큰 자료형
- byte / short 자료형은 무조건 int로 변환
 
public void casting() {
    int i = 15;
    double d = i; // 정수 'i'를 실수 'd'에 대입
    System.out.println("d : " + d);
    // 출력 결과
    // d : 15.0
    // int > double로 자동 형 변환
}
double이 int의 값의 범위보다 크기 때문에 자동으로 형 변환이 가능하다.
public void castingTest() {
    int i;
    char ch;
    i = 'A';
    ch = 65;
    System.out.println("i : " + i);
    System.out.println("ch : " + ch);
    /* 출력 결과
    * i : 65 // A를 유니코드로 변환 > i는 int 자료형이었기 때문에 자동 형 변환
    * ch : A // 65를 문자로 변환 > ch는 char 자료형이었기 때문에 자동 형 변환
    */
}
3. 강제 형 변환(명시적 형 변환)
- 값의 범위가 큰 자료형을 값의 범위가 작은 자료형으로 변환
    - 데이터 손실 발생 가능
 
- 형 변환 연산자 사용
    - () : cast 연산자
 
public void casting() {
    // 변수 선언
    int i;
    double d;
    int iSum ;
    // 변수에 각 값을 할당
    i = 10;
    d = 10.5;
    // 에러 발생: double 자료형인 'd'는 자신보다 작은 int 자료형(iSum)에 대입 불가 > 강제 형 변환 필요
    // iSum = i + d;
    // 'd'를 int 자료형으로 변환. 형변환 연산자 괄호 안에 변환할 자료형을 기입
    // 'd'를 형 변환 하면서 소수점 아래는 삭제
    iSum = i + (int)d;
    // or 전체를 int 자료형으로 변환
    // iSum = (int)(i + d);
    
    System.out.println("i + d = " + iSum);
    // 출력 결과: i + d = 20
}
동일한 자료형 ! 기억할 것! 
그나저나.. 블로그에 카테고리 만들고 싶은데.. 오늘 하루 종일 삽질만 하고 못 만들었다.ㅠㅠ 
내일 다시 도전!!!!!