[JAVA] 변수

용용학생·2024년 3월 29일

자바

목록 보기
2/32
post-thumbnail

변수의 선언과 초기화

"변수란, 단 하나의 값을 저장할 수 있는 메모리 공간."

변수의 선언

변수를 사용하려면 먼저 변수를 선언해야 한다.

	   int age; // age 라는 이름의 변수를 선언
       --- ---
   변수타입 변수이름

변수타입 이란 변수에 저장될 값이 어떠한 타입 인지를 지정하는 것.
변수이름 은 말 그대로 변수에 붙인 이름.

변수를 선언하게 되면, 메모리의 빈 공간에 변수타입에 알맞은 크기의 저장공간이 확보되고,
앞으로 이 저장공간은 변수이름을 통해 사용할 수 있다.

변수의 초기화

변수를 선언한 이후부터 변수를 사용할 수 있지만, 그 전에 반드시 초기화 해야 한다.

"변수의 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것."

	int age = 25; // 변수 age를 (int) 타입으로 선언하고 25로 초기화

변수를 초기화하는 여러 가지 방법

	int a1; // 변수 선언 후
    a1 = 1; // 초기화
    
    int b1 = 1; // 변수의 선언과 동시에 값 초기화 
    
    int c1, c2, c3; // 같은 타입의 변수 여러 개를 선언 
    
    c1=1; c2=2; c3=3; // 세미 콜론(;)으로 구분지어 각 변수에 값 할당 
    c1=1, c2=2, c3=3; // 그러나 변수 선언처럼 콤마(,)로 값 할당은 불가능 (X)
    
    int d1=1, d2=2, d3=3; // 여러 개를 동시에 선언과 초기화는 가능
    
    int e, char f; // 다른 타입 간 동시에 선언은 불가능 (X)
    
    int g1, g2, g3=3; // g1과 g2는 선언만 됨. g3에만 3이란 값으로 초기화됨
    
    // 만약 g1과 g2, g3에 3이란 값으로 동시에 초기화하고 싶다면
    int g1, g2, g3;
    g1 = g2 = g3 = 3; // 과 같은 방식으로 작성

변수 네이밍

변수 명명 규칙

'변수의 이름'처럼 프로그래밍에서 사용하는 모든 이름을 식별자 라고 한다.
식별자는 같은 영역 내에서 서로 구분될 수 있어야하고 다음과 같은 규칙을 지켜서 만들어야 한다.

  • 대소문자가 구분되며 길이에 제한이 없다.
    • True 와 true 는 서로 다른 것으로 간주된다.
  • 예약어를 사용해서는 안 된다.
    • true 는 예약어라서 사용할 수 없지만, True 는 사용 가능하다.
  • 숫자로 시작해서는 안 된다.
    • 변수의 이름으로 abc123 은 가능하지만, 123abc 는 불가능하다.
  • 특수문자는 _$ 만을 허용한다.
    • 변수의 이름으로 $harp 는 허용되만, S#arp 는 불가능하다.

2번째 규칙의 예약어란, if, for, while, extends, true, void, default 와 같이
프로그래밍 언어의 구문에 사용되는 단어를 뜻한다.

개발자들 간의 암묵적인 명명 규칙

반드시 지켜야 하는 것은 아니지만, 코드의 가독성을 위해 자바 개발자들 사이의 암묵적인 규칙들이 있다.

  • 클래스 이름의 첫 글자는 항상 대문자로 한다.
    • 변수와 메서드의 이름의 첫 글자는 항상 소문자로 한다.
  • 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.
    • lastIndexOf, StringTokenizer (CamelCase)
  • 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 _로 구분한다.
    • PI, MAX_NUMBER

위의 규칙들은 JAVA언어에 대한 규칙이다. 프로그래밍 언어들마다의 코딩 컨벤션이 있다.
C++언어 같은 경우는 변수 이름을 last_index_of 처럼 snake_case를 사용한다.

JAVA는 대표적으로 구글 자바 코딩 컨벤션네이버 자바 코딩 컨벤션이 있다.

변수명 작성법

혼자 코드를 작성하면서 연습을 하게 되면

int a = 5; // 삼각형의 높이
int b = 11; // 삼각형의 밑변의 길이
System.out.println(a*b/2); // 삼각형 넓이를 출력

위의 코드처럼 변수명을 의미 없이 대충 적게 된다.

그렇지만 변수의 이름은 용도를 알기 쉽게 의미있는 이름으로 하는 것이 바람직하다.
변수의 선언문에 주석으로 변수에 대한 정보를 주는 것도 좋은 생각이다.

	int curPos = 0; // 현재 위치(current position)
    int lastPos = -1; // 마지막 위치(last position)

변수의 타입

변수는 크게 기본형참조형 으로 나누어진다.
기본형 변수는 실제 값(data)를 저장하는 반면, 참조형 변수는 메모리 주소를 값으로 갖는다.

  • 기본형(Primitive Type)
    • 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)
  • 참조형(Reference Type)
    • 기본형 8개를 제외한 나머지 타입. 객체의 주소를 저장

상수

상수를 선언하는 방법은 변수와 동일하며, 단지 변수의 타입 앞에 키워드 final을 붙여주면 된다.

	final int MAX_SPEED = 10; // 상수 MAX_SPEED를 선언&초기화

상수는 반드시 선언과 동시에 초기화를 해주어야 하고, 그 후부터는 상수의 값을 변경할 수 없다.

	final int MAX_SPEED;       // (X), 상수는 선언과 동시에 초기화해야함
    final int MAX_VALUE = 100; // (O), 선언과 동시에 초기화 이루어짐
    MAX_VALUE = 200;           // (X), 상수의 값은 변경될 수 없음
profile
자바 스프링 공부하는 정리 블로그!

0개의 댓글