[Java] 변수와 상수

Smite·2023년 8월 23일

Java

목록 보기
3/5

변수와 상수는 프로그래밍에서 기본적이고 핵심적인 개념으로, 데이터의 저장과 관리를 위해 사용된다. 이 두 가지 요소는 프로그램의 실행 중 데이터의 유연한 처리와 저장을 가능하게 하며, 프로그래밍 언어에서는 데이터를 조작하고 다루는 데 필수적인 역할을 한다.


변수 (Variable)

변수(Variable)는 프로그램에서 사용되는 값을 저장하는 메모리 공간을 의미한다. 변수는 데이터의 특성에 따라 다양한 타입으로 선언할 수 있으며, 이렇게 저장된 값은 나중에 필요한 곳에서 다시 사용할 수 있으며, 저장된 변수의 값은 변경이 될 수 있다.

변수의 종류

자바에서는 기본형 변수(Primitive Variables)와 참조형 변수(Reference Variables) 두 가지 유형의 변수가 존재한다.

변수 네이밍 규칙

  1. 변수 이름은 영문자나 언더바(_), 달러 기호($)로 시작해야 하며, 숫자로 시작할 수 없다.
  2. 변수는 대소문자를 구분한다.
  3. 변수 이름에는 영문자, 숫자, 언더바(_), 달러 기호($)를 사용할 수 있다.
  4. 변수 이름은 언더바(_), 달러 기호($)를 제외한 특수문자나 예약어(키워드)는 변수 이름으로 사용할 수 없다.
1.변수 이름 영문자 및 언더바(`_`), 달러 기호(`$`)로 시작
String name;	// 변수 name 선언
String $name;	// 변수 $name 선언
String 1name;	// 변수 이름 숫자로 시작 -> 변수 선언 불가

2.변수 대소문자 구분
int age;		// 변수 age 선언
int Age;        // 변수 Age 선언

4.변수 이름 언더바(`_`), 달러 기호(`$`)를 제외한 특수문자 및 예약어 사용 불가
int #value;		// 변수 이름 특수문자 포함 -> 변수 선언 불가
String int;		// 변수 이름 예약어로 선언 -> 변수 선언 불가

예약어
자바에서 이미 의미를 갖고 있는 키워드 (int, boolean, class 등)

변수의 선언과 초기화

자바에서 변수를 사용하기 위해서는 먼저 변수를 선언하고 초기화해야 한다. 변수를 선언하는 것은 해당 변수의 이름과 데이터 타입을 정의하는 과정이다. 초기화는 변수에 실제 값을 할당하는 것을 의미한다. 변수를 선언한 후에 초기값을 주지 않으면 해당 변수는 기본 초기값으로 자동으로 초기화된다.

int age;         // 변수 선언
age = 25;        // 변수 초기화
int score = 90;  // 변수 선언과 초기화

변수의 사용과 변경

변수를 선언하고 초기화한 후에는 해당 변수를 사용하여 연산하거나 다른 변수와 조합하여 프로그램 로직을 작성할 수 있다. 변수는 프로그램 실행 중에 값이 변경될 수 있다.

int count = 0;    	// 변수 선언과 초기화
count = count + 1;  // 변수 값 변경

변수의 유효 범위

변수는 특정한 유효 범위(Scope)에서만 사용할 수 있다. 유효 범위란 변수가 존재하고 접근 가능한 영역을 말한다. 보통 중괄호({})로 둘러싸인 코드 블록 내에서 변수가 선언되면 해당 블록 내에서만 사용할 수 있다. 이를 블록 스코프(Block Scope)라고 한다.

아래의 예제는 정상적으로 값을 출력하는 경우와 변수가 다른 스코프에서 사용되어 오류가 발생하는 경우이다.

1.값을 정상 출력하는 경우
public class ScopeExample {

    public static void main(String[] args) {
        int variable1 = 10;					// 변수 선언과 초기화
        System.out.println(variable1);		// 변수 출력
        outerMethod();						// outerMethod 메서드 호출
    }

    public static void outerMethod() {
        int variable2 = 5;					// 변수 선언과 초기화
        System.out.println(variable2);		// 변수 출력
    }
}
결과 
10
5

2.오류가 발생하는 경우
public class ScopeExample {

    public static void main(String[] args) {
        int variable1 = 10;					// 변수 선언과 초기화
        System.out.println(variable1);		// 변수 출력
        outerMethod();						// outerMethod 메서드 호출
        System.out.println(variable2);		// 변수 출력 -> 메소드 외부에서 variable2에 접근할 수 없어 에러 발생
    }

    public static void outerMethod() {
        int variable2 = 5;					// 변수 선언과 초기화
    }
}

변수의 활용

변수는 프로그램에서 다양한 용도로 활용된다. 데이터 저장, 계산, 조건문, 반복문 등에서 변수를 사용하여 프로그램의 동작을 제어하고 효율적인 코드를 작성할 수 있다.

int width = 10;
int height = 5;
int area = width * height; 

변수는 프로그램의 실행 중 값이 변할 수 있는 상황에서 유용하며, 데이터의 다양한 처리와 저장에 활용된다.


상수 (Constant)

자바에서 상수(Constant)는 한 번 정의되면 그 값을 변경할 수 없는 변수를 의미한다. 상수는 주로 프로그램에서 변경되지 않고 일정한 값을 사용해야 할 때 사용된다. 상수는 final 키워드를 사용하여 정의하며, 전체 대문자로 작성하며 여러 단어는 언더바(_)로 구분하는 것이 관례이다.

상수 규칙

  • 상수를 정의할 때 final 키워드를 사용한다. 이 키워드를 사용하면 해당 변수의 값을 변경할 수 없게 된다.
  • 상수 이름은 전체 대문자로 작성하는 것이 관례이다. 여러 단어를 사용하는 경우 언더바(_)로 단어를 구분한다.
  • 상수에 값을 할당할 때는 선언과 동시에 초기화해야 하며, 이후에 값을 변경할 수 없다.
1.상수 선언
final int MAX_VALUE = 100;
final double PI = 3.14159;
final String MY_CONSTANT = "Hello, World!";

2.상수 선언 불가
final String MY_PHONE = "SAMSUNG";	// 상수 선언과 초기화
MY_PHONE = "apple";					// 상수 값 변경 -> 불가

번외

변수와 상수 사용

  1. 변수(Variable) 사용
  • 데이터가 변하거나 다양한 값들을 저장해야 할 때 유용하다.
  • 예를 들어, 사용자의 입력이나 계산 결과를 저장하고 나중에 사용하려면 변수를 활용할 수 있다.
  • 데이터가 다양한 경우에 유연하게 대응할 수 있으며, 상황에 따라 값이 변경되어야 할 때도 변수를 사용할 수 있다.
  1. 상수(Constant) 사용
  • 프로그램에서 변하지 않고 고정된 값을 사용해야 할 때 유용다.
  • 예를 들어, 원주율 π(3.14159265359)나 세금 비율 등은 상수로 정의하여 프로그램 내에서 일관된 값을 사용할 수 있다.
  • 값이 고정되어 있기 때문에 다른 부분에서 수정할 필요가 없어서 코드의 안정성을 높일 수 있다.

따라서 변수는 프로그램의 실행 중 값이 변할 수 있는 상황에서 유용하며, 데이터의 다양한 처리와 저장에 활용된다. 반면 상수는 주로 프로그램에서 일정한 값을 사용해야 하는 경우에 활용되며, 값이 고정되어야 하므로 보다 안정적인 코드를 작성할 수 있다. 이에 따라 상황에 맞게 변수와 상수를 적절하게 선택하여 사용하는 것이 좋다.

네이밍 컨벤션
네이밍 컨벤션은 변수, 함수, 클래스, 메서드 등의 이름을 지을 때 사용되는 규칙을 의미한다. 이는 코드의 가독성을 높이고 유지보수를 용이하게 하기 위해 사용되는 중요한 원칙이다.

  1. 카멜 케이스(Camel Case)
  • 첫 번째 단어는 소문자로 시작하고, 그 뒤에 오는 각 단어의 첫 글자는 대문자로 표기한다.
    myVariableName, calculateTotalAmount
  1. 파스칼 케이스(Pascal Case)
  • 각 단어의 첫 글자를 대문자로 표기한다.
    MyClassName, CalculateTotalAmount
  1. 스네이크 케이스(Snake Case)
  • 모든 단어를 소문자로 표기하며, 단어 사이를 밑줄(_)로 구분한다.
    my_variable_name, calculate_total_amount
  1. 케밥 케이스(Kebab Case)
  • 모든 단어를 소문자로 표기하며, 단어 사이를 하이픈(-)으로 구분한다.
    my-variable-name, calculate-total-amount
  1. 헝가리안 표기법(Hungarian Notation)
  • 변수 이름을 작성할 때 접두사로 변수의 데이터 타입을 나타내는 문자를 추가한다.
  • strName (문자열), nCount (정수), fPrice (실수), bEnabled (부울)
타입 정보를 변수명에 추가하는 것보다 의미 있는 이름을 사용하여 보다 명확하고 간결한 변수명을 사용하여
가독성을 높이는 것이 더 권장되며, 현대 프로그래밍에서는 헝가리안 표기법은 사용되지 않는 추세이다.

협업 시 개발자들 간에 명확한 네이밍 규칙이 없으면 다양한 네이밍이 존재하게 된다. 이러한 네이밍은 어떤 코드인지 이해하기 어려운 상황을 유발한다.

이러한 이유로 네이밍 컨벤션을 따르는 것은 코드를 읽고 이해하기 쉽게 만들어 코드 품질을 향상시키고 가독성을 확보하며, 다른 개발자들과의 협업 시에도 통일성을 유지하고 코드의 일관성을 보장하는 데 도움이 된다.

이처럼 프로젝트나 프로그래밍 언어, 프레임워크 등에 따라 적절한 네이밍 컨벤션을 선택하는 것은 코드의 가독성과 일관성을 유지할 수 있으며, 효율적인 협업을 실현할 수 있다.


📖Java Index

0개의 댓글