Java - 변수

Programming/Java 2015. 12. 5. 22:07

<자바에서의 변수란?>

값을 저장할 수 있는 메모리상의 공간을 말한다.

인간이 하드디스크의 구조와 주소체계를 모두 알아서 직접 저장하면 얼마나 좋은가? 아쉽게도 하드디스크의 구조는 매우 어려우므로 인간이 직관적으로 알아들을수 있는 변수라는 것을 만들어서 사용하게 된다.

 

<변수의 선언?>

int num;      // 이것이 num이라는 정수형 변수를 선언한 것이다.

이번에는 초기화도 해보자.

int num1 = 10;      // 이것은 num1이라는 정수형 변수에 10이라는 정수를 저장(대입)한 것이다.

 

변수를 선언할 때 이름 짓는 규칙이 있다.

1. 특수문자는 _ 와 $ 만을 허용

2. 예약어를 사용하면 안된다. (package, public, return, for, null, new 등...)

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

4. 숫자로 시작하면 안된다.

다음과 같은 4가지의 규칙에만 어긋나지 않게 변수이름을 지으면 된다.

 

※ 이번에는 자바프로그래머들 사이에서 약속이 있다. 변수이름을 지을 때 알아듣기 쉽게 정의해놓은 것이다.

1. 여러 단어로 이루어진 이름은 단어의 첫 글자만 대문자로 한다.

2. 클래스 이름의 첫 글자는 대문자로 한다.

3. 상수의 이름은 모두 대문자로, 여러 단어로 이루어진 경우 _ 로 구분한다.

 

<변수의 타입?>

1. 기본형

① boolean(1byte) : 논리형이라고 하는데 한가지 밖에 없다. true아님 false 마치 스위치의 on/off와 비슷하다.

선언)

boolean abc = true;    // abc라는 논리형 변수에 true저장

 

② char(2byte) : 문자형이라고 하는데 java에서는 char이 2바이트이다. 이유는 UniCode체계를 사용하기 때문이다.

선언)

char abc = 'A';    // abc라는 문자형 변수안에 문자 A를 저장

※ 그렇다면 특수문자를 표현할 때는 어떻게 할까?

특수문자

리터럴

tab

\t

backspace

\b

form feed

\f

new line

\n

carriage return

\r

역슬래쉬

\\

작은 따옴표

\'

큰 따옴표

\“

 

<실습 - char>



-결과-



③ byte(1byte), short(2byte), int(4byte), long(8byte),  : 정수형 변수이다. 숫자를 저장할 수 있는 변수이다.

 

<실습 - 정수형 변수>


-결과-


④ float, double : 실수형을 저장할 수 있는 변수이다. 범위는 엄청 크기 때문에 큰 숫자를 저장할 때 혹은 소수점을 나타낼 때 사용된다.

<실습 - 실수형 변수>




이렇게 큰 숫자를 저장할 수 있다. E표기법은 생략하겠다.

그런데 실수형 변수 float을 사용한 a에는 소수점 8자리에서 반올림 하였다. 기본 디폴트가 8자리에서  반올림 하는 것이고, .2이런식으로 소수점을 나타내고 싶은 곳까지 지정할 수 있다. 그리고 float형은 접미사 f를 붙여줘야한다.

 

 

2. 참조형

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

자 그렇다면, 참조형 변수를 선언해보자.

객체의 주소를 담는다? C언어에서 어떤 변수의 주소는 포인터 변수에 담아봤는데... 그렇다!

거의 비슷한 맥락이다.

기본 문법)

클래스이름 변수명;

Date day = null;   // Date클래스 타입의 참조변수 day가 만들어 진 것이다.(아직 주소가 들어가지 않음) 그리고 그 안에는 null이 저장된다.

Date day = new Date();   // Date 클래스 타입의 참조변수 day에 new의 연산자를 사용하여 객체의 주소를 저장했다. 그럼 day가 갖고 있는 값은 무엇일까? 당연히 Date클래스 타입의 객체 주소이다.


posted by 경원구