ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA]final 한정자, 변수와 타입 그리고 형변환(casting)
    기초/JAVA 2017. 1. 10. 10:53

     

    상수

    상수는 변경할 수 없는 값을 말하는건데

    final이라는 한정자를 변수타입 앞에 붙여주면 그 변수는 변경할수 없는 값이 됩니다!

    public final float PI = 3.14f;

    PI같은 값이 정해진 단어들을 선언 해줄때 사용할 수 있겠습니다.

    또한 final한정자는 클래스, 메소드, 변수에 다 붙일수 있는데요

     

     

     의미

    형식 

     클래스 

    상속 X

    final class 클래스이름 { }

    메소드

     오버라이딩 X

     접근제한자 final 반환타입 메소드명(){ }

    변   수

     상 수(값 변경X)

     final 데이터타입 변수명;

     

     

    변수(variable)는 하나의 값을 저장할 수 있는 메모리 공간을 의미하는데요

     

    수시로 변하는 값을 하나에 저장해놓고 쓴다고 생각하시면 편할 것같아요!

     

    나 = (me) 라는 존재의 몸무게 = (kg)은 수시로 변한다고 생각하면

    me_kg = 67; 이렇게 되는데

    이 값은 어제 저녁을 먹은 나라는 존재는

    me_kg = 69;가 되버렸어요.

     

    이때 me_kg 변수가 되는거예요!

     

    변수는 사용할 때 선언이라는 것을 해줘야 되요!

    내가 이 변수를 사용하고 싶으니 사용하게 해달라고 하는거죠!

    선언할 때는 변수에게 타입이라는것을 지정해줘야 하는데요

     

    데이터 타입(자료형)

    타입명

    타입 크기 

    표현 범위 

     boolean

    참, 거짓(논리)

    1 byte 

    TRUE, FALSE 

    byte

    정수 

    1 byte 

    -128~127

    short 

    2 byte

    -32768~32767

     int

    4 byte 

    -2147483648~

    2147483647

     long

    8 byte 

    -9223372036854775808~

    9223372036854775807

     float

    실수 

    4 byte 

    ±(1.40*10ⁿ(n=-45)~3.40*10ⁿ(n=38)) 

     double

     8 byte

    ±(4.94*10ⁿ(n=-324)~1.79*10ⁿ(n=308)) 

    char 

    문자 

    2 byte

    모든 유니코드 문자 

    String 

    문자열 

     

    문자열 표현가능

    (C언어의 char*)

     

    JAVA에서는

    Long(정수)타입에 값을 대입할 떄 L

    (이미지에서는 L이 빠졌네요 ㅠ)

    Float(실수)타입에 값을 대입할 때 F

    를 뒤에 붙여야 하네요!

    또한 char타입은 한글자만 받는 타입으로  

    문자를 대입할 때 ' ' [따옴표]만을 사용하지만

    String은 문자열을 받는 타입이기 떄문에 " "[쌍따옴표]를 사용합니다!

     

     

    왜 ...변수 타입이라는것을 지정해줘야 될까라는 의문이 드시나요?

    좋은 문제점입니다.

    int타입의 typeIntA, typeIntB가 선언되었습니다.

    float타입의 typeFloat가 선언되었습니다.

    같은 타입의 typeIntA에 typeIntB를 대입하는 것은 문제가 되지않았지만

    int타입의 typeIntA에 typeFloat를 대입하는 순간 에러가 발생했습니다.

     

    노란 전구를 클릭해보니깐 cast를 하라고 하구요 타입을 바꾸라고 하네요!

     

    여기서 중요한게 나왔습니다 cast!!!!

    앞으로 엄청 많이 하게 될텐데요!

    형변환 서로 다른 타입의 변수에 값을 대입하고 싶을때 사용하는거예요

     

    내가 동그라미 집을 가지고 있는데 뾰족뾰족한 세모가 집에 놀러오면 내집은 망가져 버리겠죠... 

    이때 프로그램은 동그라미 집이 망가지니깐 너는 못와! 라고 에러를 보냅니다.

    따라서 세모는 cast를 통해서 동그라미로 수술(?)을 해서 들어가는데요

    그게 형변환입니다!

     

     

    형변환을 하니깐 아아아아주 잘 바꼇네요!

    하지만 문제가 있는데 정수 타입에 실수형을 넣으니깐 뒤에 소수부분이 다사라져버리는 현상이 발생했네요!

    다음 예제를 보면

     

    이렇게 계산되는 값을 만들때도 소수값이 빠지는 현상이 발생될 수 있기때문에 float로 형변환을 해줘야 합니다.

     

    이렇게 숫자형끼리 형변환을 할때에는 쉬운데 문자열을 형변환할 경우가있어요!

    예를들어 입력을 문자열로만 다받고있는데 간혹 숫자를 입력받고싶을 떄에는 귀찮으니깐 문자열로 숫자를 입력받고 문자열을 숫자형으로 캐스팅 해주면 되는거예요!

    문자형을 숫자형으로 바꿔줄떄는 타입형.parse(변수이름);

    숫자형을 문자형으로 바꿔줄때는 String.valueOf(변수이름);

    이렇게 바꿔주시면 형변환이 다된거예요

     

     

    에러와 예제를 꾸준히 해보면서 프로그래밍을 하시다보면 실력이 쑥쑥 늘꺼라고 생각해요!

    다음포스터에서는 기본형식에 대해서 포스터 해보겠습니다

     

    '기초 > JAVA' 카테고리의 다른 글

    [JAVA] 입출력  (0) 2017.01.11
    [JAVA] 골격 및 주석  (0) 2017.01.10
    JAVA 환경변수 설정 win7  (0) 2017.01.04
    자바 시작하기!  (0) 2017.01.04
    JAVA란?  (0) 2017.01.02

    댓글

Designed by Tistory.