명시적 형변환 자바 - myeongsijeog hyeongbyeonhwan jaba

명시적 형변환 자바 - myeongsijeog hyeongbyeonhwan jaba

형 변환

Type Casting

; 변수의 타입을 다른 타입으로 변환

  • primitive는 primitve끼리, reference는 reference끼리 형 변환.
  • primitive와 reference 간의 변환은 wrapper class 사용 필요.
  • boolean은 변환 불가. boolean을 제외한 나머지 7개의 기본형은 서로 형 변환이 가능.

1. Implicit Type Casting

묵시적 형변환 ( 자동 형변환 )
  • 더 큰 크기의 타입에 집어넣는 경우, 자동으로 더 큰 타입으로 형변환 됨.
int smaller = 10;
double bigger = smaller;
// 정수형은 실수형으로 자동 형 변환됨

2. Explicit Type Casting

명시적 형변환
  • 더 작은 크기의 타입으로 집어 넣는 경우, 명시적으로 타입을 지정해줘야 함.
  • 📌값 손실이 발생할 수 있음
double bigger = 100;
int smaller = (int) bigger;
//(int)를 통해 형변환을 명시해주어야 함

😈 여러 타입 연산 시에는 가장 큰 값으로 결과값을 얻음.

😈 byte, char, short 는 이항 연산시에 자동으로 int로 변환되어서 계산됨.

안녕하세요 .

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

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


형변환

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

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

값의 범위

명시적 형변환 자바 - myeongsijeog hyeongbyeonhwan jaba
학원.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

유니코드 표

명시적 형변환 자바 - myeongsijeog hyeongbyeonhwan jaba
출처 : https://m.blog.naver.com/PostView.nhn?blogId=kyuhgmi&logNo=220073551241&proxyReferer=https:%2F%2Fwww.google.com%2F