본문 바로가기

프로그래밍

Java의 변수와 형변환에 대해서


Java와 하는 네번째 글입니다~

Java를 시작한지 얼마 안되신분 들 모두 환영합니다^^

저도 잘 못하지만 못하는걸 못한다고 끝내면 그냥 못하는 걸로 끝나고

못하지만 잘하려고 해보게 되면 잘하게 되는 거니까요~ 힘내서 달려봅시다!

지난번 세 개는 준비하고, 이클립스깔고, 이클립스에 색깔까지만 입혀봤는데요~


이번에 변수들을 사용해보겠습니다.

변수에 대해서 간단히 설명해보자면

메모리에 어떤 데이터를 넣기 위해서 공간을 사용하겠다고 예약을 걸어두는 것.

이렇게 생각합니다.

할당된 공간에 제가 원하는 데이터를 입력하고, 필요할 때 불러내고, 바꿔주고 하는 것이니까요.

꼭 알아야 될 것들에 대해서 알아보도록 하죠.


변수명 지정 규칙

1. 대소문자가 구분되며 길이에 제한이 없다.

 ex)  True != true

2. 예약어를 사용해서는 안된다.

 ex) True는 사용가능 하나 true는 예약어로써 변수로 사용이 불가능하다.

3. 숫자로 시작해서는 안된다.

 ex) top10은 허용하지만, 7up는 사용되지 않는다.

4. 특수문자는 '_'와 '$'만을 허용한다.

 ex)$harp(O), S#harp(X)

위 규칙을 어기면 이클립스에서 자동으로 오류에 대한 처리를 하지만, 미리알고 작성하면 지우고 쓰고 하는 시간이 절감되니 유의하시기 바랍니다.


변수의 타입

기본형 : 실제 값을 저장(data)

 - boolean, char, byte, short, int, long, float, double

  각 변수 타입의 값 구분 

  -> int : 10, long : 10l, double : 10.1d, float : 10.1f 

참조형 : 어떤 값이 저장되어 있는 주소의 값(class 등)

 - 기본형을 제외한 나머지 타입, 객체의 주소를 저장

 - String 등

 - C와 달리 참조형과 기본형간의 연산은 불가능하다.

 - 변수형 중 String외에는 대소문자의 구별이 없다.

위처럼 구분되는데 바로 값을 불러낼 것인가, 아니면 주소를 담고 있어서 그 변수를 통해 주소를 탐색하는 것인가로 구분이 됩니다.


각 기본형과 참조형 변수에 자세히 알아보겠습니다.

boolean 형

가질수 있는 값은 true, false뿐이다. 초기값은 false.


char 형

한 개의 문자 값을 갖게 되며 유니코드를 문자체계로 삼기 때문에 2byte의 공간을 갖는다.


정수형 - byte, short, int, long

byte < short <  int < long

  1   <    2    <  4   <    8

ex)

byte b =1;

short s = 2;

int fingter = 10;

long big = 10000000000000000L;//long타입의 리터럴에는 접미사 L or l 을 붙여한다. 붙어있지 않으면 정수형으로 처리한다.

int octNumber = 010; // 8진수 10, 10진수로는 8

int hexNumber = 0x10; // 16진수 10, 10진수로는 16

+Overflow시에는 가장 작은 수부터 다시 증감한다.

Overflow란 할당된 변수형이 표현할 수 있는 영역을 벗어난 경우를 얘기합니다.


실수형 - float, double

float : 1(부호) + 8(지수) + 23(가수) = 32bit- = 4byte

double  : 1(부호) + 11(지수) + 52(가수) = 64bit = 8byte

ex)

float pi = 3.14f; // f대신 F사용가능

double velocity = 3.0e5d; // d대신 D사용가능, e대신 E사용 가능

double rate = 1.618; // 접미사 d를 생략할 수 있음

+실수형 float와 double은 천만 단위부터 지수(e)를 사용하게 된다.

+실수형의 Overflow시에는 Infinity가 출력된다.


변수의 일시적인 형변환(casting)

변경할 형의 변수명 = (변경할 형)변수명;


위에 배웠던 내용들을 정리되어있는 ‘JAVA의 정석’이라는 책 저자분이 운영하시는 카페의 글입니다.

http://cafe.naver.com/javachobostudy/19

http://cafe.naver.com/javachobostudy/20

해당 사이트는 책에 대한 얘기뿐만 아니라 강좌도 따로 운영을 하고 계셔서 깊게 배우시기에 충분히 좋은 공간이라고 생각합니다^^


자 이제 연습해보겠습니다~

boolean 형에 대한 실습


+ 연산자는 기본적인 연산 기능이외에 매개변수에서 쓰일 경우는 문자열에 문자열을 더하는 기능 등을 수행할 수 있다. C언어에서는 다른 함수를 불러와서 문자열에 붙이도록 동작합니다.


Char형 및 형 변환에 대한 실습

+ 연산자는 소스 내에서 개행과 사용될 때 연산자를 사용하고 개행을 했을때만 이후의 내용들을 연산의 대상으로 인식한다. 만일 개행된 뒤에 연산자를 사용하게 되면 문법오류가 발생하게 된다.

개행이란? 엔터가 하는 기능인 줄바꿈을 말합니다.


형 변환을 이용한 char형의 출력

A -> 65

Z ->

a ->

z -> 

한번에 출력


문자형에 정수값을 더하게 되면 반환값이 정수형으로 변경되게 된다. 때문에 일시적으로 형변환을 하여 주어야지만 원하는 형태의 값을 반환받을 수 있다. 

※ 실제 코딩에서 형변환이 자주 사용되지는 않습니다.