YZ ZONE

[혼자 공부하는 자바] ch2-1 변수 본문

programming language/Java

[혼자 공부하는 자바] ch2-1 변수

러블리YZ 2023. 1. 20. 23:31

변수 variable

: 정수, 실수 등 다양한 타입의 값을 저장할 수 있는 메모리의 특정 번지에 붙여진 이름

변수를 통해 해당 메모리 번지에 하나의 값을 저장하고 읽을 수 있음

 

메모리에 값을 저장하고 싶다면 변수를 선언하고 변수에 값을 저장하면 됩니다. 

 

자바의 변수는 다양한 타입의 값을 저장할 수 없음.

하나의 변수에 동시에 두 가지 값을 저장할 수 없고 하나의 값만 저장할 수 있음

같은 타입의 변수는 콤마(,)를 이용해서 한꺼번에 선언 가능. 

int x, y, z;

변수 선언

변수에 어떤 타입의 데이터를 저장할 것인지, 변수 이름은 무엇인지 결정. 

타입 변수이름; //형식
int age; //정수(int)값을 저장할 수 있는 age변수 선언

 

변수 이름

자바 언어에서 정한 명명 규칙에 따라 작성.

  • 변수 이름의 명명 규칙영어 대소문자를 구문한다. 
  • 자바 예약어는 사용할 수 없다.
  • 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 한다. ( ... 
  • 첫 번째 글자는 문자이거나 '$', '_' 이어야 하고, 숫자로 시작할 수 없다.

예약어: 자바 언어에서 의미를 가지고 사용되는 단어로 변수 이름으로 사용시 에러 발생

값 저장

대입 연산자(=)사용

int score; //변수 선언
score = 90; //값 저장

- 변수 초기화

:변수에 최초로 값(초기값)이 저장될 때 메모리에 변수가 생성됨. 

자바에서는 변수에 값이 저장되지 않으면 변수가 생성되지 않음. 즉 어떤 값이 저장되더야 실질적으로 변수사 생성이됨. 

변수선언은 저장되는 값의 종류와 이름만 언급한 것으로 변수생성과는 다름. 

 

초기화되지 않은 변수는 아직 메모리 번지 정보를 가지고 있지 않아 변수를 통해 메모리 값을 읽을 수 없음. 

//잘못된 예
int value; //변수 value 선언 
int result = value + 10; //변수 value의 값을 읽고 10을 더해서 변수 result에 저장

//위 코드는 value에 초기값을 저장하지 않았음으로 value라는 변수에는 아무 값이 없다. 그럼으로 값을 읽을수도 없다.

//바른코드 
int value = 30; //변수 value 선언과 동시에 초기값 저장 
int result = value + 10; //변수 value의 값을 읽고 10을 더해서 변수 result에 저장

변수 사용

변수의 값을 이용해 출력문이나 연산식을 수행하는 것

package sec01.exam02;

public class VarianleUseExample {
	public static void main(String[] args) {
    	int hour = 3;
        int minute = 5;
        System.out.println(hour + "시간" + minute + "분");
        
        int totalMinute = (hour * 60) + minute;
        System.out.println("총" + totalMinute + "분");
    }
 }
 
 //실행결과
 //3시간 5분
 //총 185분

- 변수 값 복사

변수는 또 다른 변수에 대입하여 값을 복사할 수 있음. 

int x = 10; //변수x에 10을 저장
int y = x; //x에 저장된 값을 변수 y에 복사(저장)

변수 사용 범위

로컬변수

: 메소드 블록 내에서 선언된 변수.

선언된 메소드 블록 내부에서만 사용가능,  메소드 실행이 끝나면 메모리에서 자동 소멸됨. 

 

메소드 블록 내에는 다른 중괄호 {}블록들이 작성될 수 있음. ex)if() {}, for() {}, while() {}등

이러한 중괄호 블록 내에서 선언된 변수는 해당 중괄호{}블록 내에서만 사용이 가능하고 밖에서는 사용할 수 없음.