[자바/JAVA] 변수란? (변수가 무엇이고 어떻게 사용할까?)

박정현·2023년 6월 11일
0
post-thumbnail

1. 변수란?

자바에서 변수는 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름으로 어떻게 보면 직관적이고 간단한 개념이다. 그러나 바로 다음에 배우는 타입과 형변환, 나중에는 지역변수와도 연관되므로 변수에 대한 정확한 이해가 필요하다.

1) 변수

  • Verable 또는 줄여서 Var라고도 한다.

  • 하나의 데이터를 저장할 수 있는 저장공간 즉, 메모리 공간의 의미한다.

  • 프로그램은 변수를 통해 메모리의 특정 번지에 값을 저장하고 읽을 수 있다.

  • 저장된 값은 변경할 수 있다.

  • 변수의 두 가지 의미

    1. 저장공간 그 자체. 주소 [ i = 10; ]
    2. 저장되어있는 주소의 참조 값 [ System.out.ptintln(i) ]

2) 데이터

변수를 하나의 데이터를 담을 수 있는 공간이라고 했는데 여기서 데이터는 어떻게 저장될까?

[ bit ]

  • bit는 메모리에 데이터를 저장할 때 사용하는 최소 단위이다.
  • 데이터의 기본단위는 1bit이며 1bit는 0과 1을 담을 수 있다.

[ byte ]

  • byte는 메모리의 기본단위이다.
  • 메모리는 컴퓨터 저장공간을 의미한다.
  • bit는 너무 작은 단위이기 때문에 byte단위로 작업에 사용한다.
  • 1byte = 8bit (-2^7 ~ 2^7-1 개의 데이터를 담을 수 있다.)

2. 변수 명명 규칙

변수의 이름을 정할 때는 자바에서 정한 명명 규칙을 따라야 한다.

  1. 키워드(예약어)를 사용할 수 없다.
    • 예약어는 컴퓨터 프로그래밍 언어에서 이미 문법적으로 사용하고 있기 때문에 식별자로 사용할 수 없는 단어를 의미한다.
    • 예를 들어 int, break, try, class 등이 있다.
  2. 숫자로 시작할 수 없다.
  3. 공백이 있으면 안 된다.
  4. _ , $ 이외의 특수문자를 사용할 수 없다.
int class = 10; //에러: class예약어 사용할 수 없음
int 1score = 10; //에러: 숫자로 시작할 수 없음
int score1 = 10; //숫자가 뒤에 있을 수 있음
int sco1re = 10; //숫자가 중간에 들어올 수 있음
int s c o r e = 10; //에러: 공백이 있으면 안됨
int score^^7 = 10; //에러: _, $ 이외의 특수문자를 사용할 수 없음
int score_$1 = 10; //_, $ 특수문자 사용가능

자바에서 정한 명명 규칙이외에 지켜야 할 것들이 있다. 개발자들과의 약속으로 컴파일 에러가 나지 않지만 여러 사람과 진행하는 프로젝트가 많기 때문에 변수이름을 정할 때 약속을 지키는 것이 좋다.

  1. 대소문자를 구분한다.
    • 자바에서는 대소문자를 구분하지만 대부분 소문자를 사용한다.
  2. 소문자로 시작한다.
  3. 다른 문자가 시작되면 대문자로 시작한다.
  4. 한글을 사용하지 않는다.
int Score = 20; //에러X 약속X: 첫 글자로 시작해야 함
int scorestudent = 20; //에러X 약속X: 다른 문자가 시작되면 대문자로 시작함
int scoreStudent = 20; //에러X 약속O
int 점수 = 20; //에러X 약속O: 한글을 사용하지 않음

3. 변수사용

변수를 사용하기 위해서는 변수를 선언하고 초기화를 해야 한다. 또한 할당을 통해 변수에 저장된 값을 출력하거나 연산할 때 사용할 수 있다.

1) 변수 선언

✅ 데이터타입 변수명;
  • 변수를 사용하기 위해서는 변수를 선언해야 하는데 데이터타입 변수명; 의 형태로 선언한다.
  • 변수의 선언은 변수의 이름과 변수에 어떤 타입의 데이터를 저장할지를 결정한다.
  • 이 변수는 컴퓨터 메모리에 위치하게 된다.
  • 변수는 메소드 안에서 선언할 수 있다.
int num1;
long id;
String password;

2) 초기화

  • 값 저장은 대입 연산자(=)를 사용한다.
    • 수학에서 =는 같다는 의미이지만 자바에서는 오른쪽의 값을 왼쪽에 저장한다는 의미이다.
    • 자바에서 같다는 ==를 사용한다.
  • 변수에 최초로 값이 저장될 때 변수를 생성하며 이를 변수 초기화라 한다.
int num1 = 100; //int형 변수 num1을 선언하고 100으로 초기화 했다.(선언과 초기화를 한 번에 할 수도 있다)
num1 = 200; //int형 변수 num1을 200으로 초기화 했다.

3) 할당

  • 변수에 저장된 값을 출력하거나 연산할 때 사용할 수 있다.
  • println()메소드의 매개값에 변수를 사용하면 변수에 저장된 값을 사용해 출력할 수 있다.
  • println()를 이용한 출력은 syso + Ctrl + Space 단축키를 통해 빠르게 할 수 있다.
int num1 = 100;
System.out.println(num1);

4. 변수의 사용범위

✅ 변수는 자신이 선언된 위치에서만 자신이 속한 블록 내부까지만 사용가능
  • 메소드 블록 안에서만 변수를 선언할 수 있다.
  • 메소드 블록 안에 다른 중괄호{ }블록 안에 선언된 변수는 해당 중괄호 { }블록 안에서만 사용가능하다.
  • 메소들 블록 전체에 사용하고 싶다면 메소드 블록 첫머리에 작성한다.
  • 특정 블록 안에서만 사용하고 싶다면 해당 블록 내에 생성한다.

5. 요약

변수는 하나의 데이터를 저장할 수 있는 저장공간으로 변수를 통해 메모리의 특정 번지에 값을 저장하고 읽을 수 있다.

메모리는 컴퓨터 저장공간을 의미하는데 byte가 기본단위이다. 1byte는 8bit로 -128~127개의 데이터를 담을 수 있다.

변수의 이름을 정할 때는 자바에서 정한 명명규칙을 따라야 하며 어길 시에는 에러가 발생한다. 이외에도 에러가 발생하진 않지만 개발자들끼리 약속한 규칙을 따라 변수의 이름을 정하는 것이 좋다.

변수의 이름까지 정했다면 변수를 사용할 준비를 해야 하는데 변수선언과 초기화로 한다. 데이터타입 변수명;의 형태로 변수를 선언했다면 대입연산자를 통해 값을 저장한다.

profile
개발을 개발괴발하지 않기 위한 노력

0개의 댓글