본문 바로가기

Java

변수

728x90

변수는 값을 저장하는 메모리이다.

 

<변수 선언>

값을 저장하는 메모리를 준비하는 명령이다.

값을 저장할 메모리의 종류와 크기를 결정하고 그 메모리에 이름을 부여한다.

변수를 선언한 후 바로 그 이름을 사용하여 메모리에 접근하고 값을 넣고 꺼낸다.

보통 "변수를 생성한다"라고 표현하기도 한다.

 

[변수 선언 문법]

데이터타입 변수

예) int i;

 

또는 한 문장으로 같은 유형의 변수를 여러 개 선언할 수 있다.

[여러개 변수 선언 문법]

데이터타입 변수1, 변수2, 변수3;

예 ) int j1, j2, j3;

(콤마(,)를 사용하여 여러 개의 변수를 한 번에 선언할 수 있다.)

 

 

<변수에 값 할당(변수가 가리키는 메모리에 값을 저장하는 것)>

[변수 값 할당 문법]

변수명 = 변수 또는 리터럴;

 

    int age;

    //- 문법
    //  변수명 = 값;
    age = 20;
    
    // 표현 : age에 20을 저장하라!

 

용어

= : 할당 연산자(assignment operator)

l-value : = 왼쪽에 있는 변수를 가리킨다. l-value는 리터럴이 될 수 없다.

r-value : = 오른쪽에 있는 변수나 리터럴을 가리킨다.

 

의미

= 오른쪽에 지정된 값을 왼쪽 변수가 가리키는 메모리에 저장.

 

 

 

<변수 선언과 값 할당을 동시에 하기>

변수과 동시에 값을 즉시 저장할 수 있다.

 

[변수 선언과 값 할당 문법]

데이터타입 변수명 = 값;

 

//변수 선언 + 값 저장
//- 이렇게 변수 선언과 값 저장을 한 번에 하는 것을 '변수 초기화 문장'이라 부른다.

int age = 20;

 

추가

1. 여러 개의 변수를 선언할 때도 한 개를 선언할 때와 마찬가지로 값을 저장할 수 있다.

2. 모든 변수를 다 초기화시킬 필요는 없다.

 

<변수의 값 변경>

 

int age;
     
age = 20; 
    
//할당 연산자를 이용하면 언제든 해당 메모리에 다른 값을 저장할 수 있다.
age = 30;

 

<블록 안에서 변수 선언 위치>

 

//사용할 변수를 블록({}) 시작 부분에 미리 선언해 놓아도 된다.
    int age;
    int weight;
    int height;
    
    age = 20;
    weight = 100;
    height = 200;
    
//변수가 필요할 때 블록({}) 중간 부분에 언제든 선언할 수 있다.
    int score;
    
    score = 100;

 

<변수 선언 오류>

주의 : 같은 블록 안에서 같은 이름의 변수를 중복해서 선언할 수 없다.

 

//변수 선언 보다 변수 사용이 먼저 올 수 없다.
    count = 50; // 문법 오류!
    
    int count;
    
//항상 변수가 선언된 다음에 사용해야 한다.
    count = 50; // 옳다!

 

 

 

<변수 사용>

다른 도구(메서드; 함수라고도 부른다)에 값을 전달 할 수 있다.

다른 변수에 값을 저장할 때 사용할 수 있다.

주의 : 값이 저장되지 않은 변수를 사용하면 문법 오류이다.

 

int age = 20;
    
    //println() 메서드(도구)
    //- 콘솔(console)로 값을 출력할 때 사용하는 도구이다.
    //- 즉 JVM의 표준 출력 장치로 값을 출력한다.
    //- 사용법
    //    System.out.println(리터럴 또는 변수, 결과가 생성되는 명령문)
    //
System.out.println(age);
int age1 = 20;
    
    //r-value 자리에 변수를 놓을 수 있다.
int age2 = age1;
    
    //의미
    //- age1에 저장된 값을 age2에 복사하라!
    
    //age1과 age2는 같은 메모리가 아니다.
    //증명
    //- age1의 값을 변경한다.
age1 = 30;
    
System.out.println(age1);
System.out.println(age2);

 

<변수의 종류>

자바 원시 타입의 값을 저장하는 변수와 메모리 주소를 저장하는 변수가 있다.

 

1) 자바 원시 타입 변수(primitive variable)

  정수, 부동소수점, 논리, 문자코드의 값을

2) 레퍼런스 변수(referece variable)

  자바 원시 타입의 값을 제외한 모든 값

'Java' 카테고리의 다른 글

배열, 배열레퍼런스, 배열인스턴스  (0) 2021.10.28
변수의 종류  (0) 2021.09.29
예외처리  (0) 2021.09.19
오버로딩  (0) 2021.09.16
생성자는 언제 쓰나?  (0) 2021.09.14