티스토리 뷰

IT/Java

자바의 변수

오예봉봉 2020. 4. 7. 23:27

1.변수(variable) 개념

프로그램은 어떤 일을 수행하는 과정에서 필요에 따라 데이타를 메모리에 저장해야 한다. 이러한 경우에 변수가 사용된다. 즉 변수는 데이터를 저장할 수 있는 메모리 공간을 의미한다. 이것의 이름이 변수인 까닭은 그 공간에 들어가는 값이 자주 변경되기 때문에 변수라고 부른다. 변수에는 하나의 값만 들어갈 수 있다. 또한 한 가지 형태의 값만 저장할 수 있다. 따라서 , 하나의 변수에 복수의 데이터를 저장하거나 여러가지 형태의 데이터를 저장하는 것은 불가능하다. 예컨대 , 정수 형태의 변수에는 정수 데이터만 저장할 수 있다. 

2.변수 선언

프로그램에서 변수를 사용하기 위해서는 우선 변수를 선언해 주어야 한다. 즉 변수의 이름과 그 변수에 어떤 형태의 데이터를 저장할 것 인가를 지정해야 한다. 아래의 사례를 보자

1. int value ;
2. double number ;

1행은 정수(int) 데이터를  저장할 수 있는 변수 value를 선언한 것이다.
2행은 실수(double)데이터를 저장 할 수 있는 변수 double를 선언 했다. 

변수의 형태(type)가 동일한 것들은 아래와 같이 콤마(,)를 이용하여 한번에 선언하는 것이 가능하다.

int a , b , c ;

변수 이름 만들기(변수 명명 규칙)

변수 이름은 데이터가 저장되어 있는 메모리의 주소이다. 메모리 주소는 복잡한 숫자로 되어 있어서 인간이 이용하기가 적합하지 않다. 그래서 메모리 주소와 변수 명을 mapping 하여 변수 명으로 데이터를 저장(입력)하거나 읽어(출력) 온다. 

명명 규칙 

 사례

 자바 예약어는 사용할 수 없다.

 링크 참조

 이름의 글자 수는 제한 제한이 없다.

 

 첫 글자는 문자, $ , _ 이어야 한다.

 value , $value

 첫 글자로 숫자는 사용 불가하다

 4value

 첫 글자가 소문자인 경우 다음 단어는 대문자로

시작한다.

  valueSpeed


변수 이름은 본인 뿐만 아니라 타인이 보아도 알 수 있도록 간결하고 직관적으로 작성하는 것이 좋다.


3.변수 사용

변수의 사용은 변수에 데이터를 저장하거나 저장된 데이터를 읽어 오는 것이다.

데이터 저장

변수에 값을 저장할 경우에는 대입연산자(=)를 이용한다. 대입연산자(=)는 같다라는 의미가 아니고 우측의 값을 좌측의 변수에 입력한다는 의미이다. 

int value ;         //변수 value를 선언한다.
value = 10 ;      //선언된 변수 value 에 정수 10을 저장한다. (변수 초기화)

변수 선언과 초기화를 동시에 해도 무방하다.

int value = 10 :

데이터 읽어 오기

변수값을 읽어 오려면 그 변수에는 데이터가 들어 있어야 한다. 즉 초기화가 이루어진 변수에서 읽기가 가능하다. 

int number ;
int value = number + 10 ;

위의 코드는 컴파일 에러를 발생 시킨다. 변수 number가 선언은 했으나 초기화가 되지 않았기 때문이다. 위 코드를 수정하면 아래와 같다.

int number =  1;
int value = number + 10 ;

4.변수 사용 범위

변수는 사용 범위를 기준으로 전역변수 ,지역변수가 있다. 여기에서는 일단 지역 변수만 보자.
원칙적으로 일정한 블록{ } 안에서 선언된 변수는 그 블록 안에서 만 사용이 가능하다. 
아래 예제를 보자.

6행의 var1 변수는 main함수 블록에서 선언 되었다. 따라서 , 11행 , 21행 에서 처럼 if문 블록 , for문 블록 같은  제어문 블록 안에서도 사용이 가능하다. 그러나 , 9행의 var2 , 22행의 var3 변수는 선언된 블록의 밖으로 나갈 수 없다. 그래서 ,16행과 26행처럼  변수가 선언된 블록을 벗어나 사용되면 컴파일 에러가 난다.

















 



'IT > Java' 카테고리의 다른 글

타입 변환(형 변환)  (0) 2020.04.08
데이터 타입(data type)  (0) 2020.04.08
JVM(Java Virtual Machine)  (0) 2020.04.07
자바의 특징  (0) 2020.04.06
프로그래밍 언어의 개념  (0) 2020.04.04