JAVA - 형변환(명시적, 묵시적)

안녕하세요 .

국비 기록용으로 남길려고합니다 

참고 하실때 도움되셨으면좋겠습니다 ..!(너무믿지 말아주세요 ...)


형변환

값의 기본자료형을 바꾸는것(int > long), 단 boolean(논리형) 은 형변환을 사용할수가 없다. 

형변환은 자동형변환과 강제형변환 2종류가 있다 .

 

값의 범위

학원.pdf 참조하였습니다.

자동형변환

컴파일러가 자동으로 값의 범위가 작은 자료형을 큰자료형으로 변환 해주는것

위에 표처럼 작은타입에서 큰타입으로 변경할때는 자동형변환이 되어서 따로 형타입 작성안해도됩니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.test;
 
public class Test {
 
    public static void main(String[] args) {
        //자동 형변환
        //작은 자료형의 타입을 큰 자료형타입으로 컴파일러가 자동적으로 변경해준다.
        int iNum = 1;
        double dNum = iNum;
        //원래 형변환시 변수타입과 리터럴타입이 똑같아야 하는데, int가 double보다 공간이더 작기때문에 자동형변환이일어난다.
        //원래는 아래와 같이 변환해야할 타입을 (타입) <<안에 표시해줘야한다 .
        //자동형변환은 컴파일러가 대신 처리해준다.
        double dNum2 = (double)iNum; 
        
    }
}
 
cs

 

강제형변환

값의 범위가 큰자료형값은 작은자료형으로 변경하는것

이럴때는 항상 (자료형타입) 으로 표시를해주어야한다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.test;
 
public class Test {
 
    public static void main(String[] args) {
        //강제 형변환
        // 큰자료형 값을 작은자료형으로 대입을할때 (형변환자료형) 값; 이런식으로 표시를해주어야한다.
        double dNum = 30.5;
//        int iNum = dNum; //에러, 값보다 작은자료형이기 때문에 자동형변환불가 이럴경우 강제형변환해주어야함
        int iNum = (int)dNum; //주의 : double형에서 int 형으로 변환할때는 int는 정수이기떄문에 double의 소수점 버려지게됨 30.5 > 30;
        
        char ch = 'A';
        int iNum2 = ch;
        //char보다 int형의 자료형 범위가 더크기때문에 자동형변환 되지만 'A' 문자값은 숫자 65로변경된다.
        //왜 65가 나오냐하면 유니코드 값 에 의해결정된다.
        //아래에 유니코드 이미지 첨부참조
        
        
    }
}
 
cs

 

 

유니코드 표

출처 : https://m.blog.naver.com/PostView.nhn?blogId=kyuhgmi&logNo=220073551241&proxyReferer=https:%2F%2Fwww.google.com%2F 

 

'프로그래밍 > JAVA' 카테고리의 다른 글

JAVA - 연산자  (0) 2021.05.12
JAVA - 데이터 오버플로우  (0) 2021.05.12
JAVA - 상수  (0) 2021.05.12
JAVA - Scanner 클래스  (0) 2021.05.11
JAVA - 변수  (0) 2021.05.11
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유