3. 변수(Variable)

박은서's avatar
Dec 02, 2025
3. 변수(Variable)

1. 변수(Variable)

교재 p.52-63 2.2 변수와 자료형

1️⃣ 변수란?

값을 저장하기 위해 이름을 붙여 만든 메모리 공간
프로그램 실행 중에 값을 넣거나 바꿀 수 있는 저장소

2️⃣ 변수의 기본 개념

int age = 20;
  • int → 변수에 어떤 종류의 값을 넣을지(자료형)
  • age → 변수 이름
  • 20 → 변수에 저장된 값

3️⃣ 변수의 선언과 초기화

1) 선언

int score;
⚠️ 초기화하지 않은 변수는 사용 불가

2) 초기화

score =90;

3) 선언 + 초기화

intscore=90;

4️⃣ 변수의 종류 (선언 위치 기준)

1) 지역 변수 (Local Variable)

  • 메서드 안에서 선언
  • 반드시 초기화 필요
  • 메서드 종료 시 사라짐
void test() { int x=10; }

2) 인스턴스 변수

  • 클래스 안, 메서드 밖
  • 객체 생성 시 메모리에 올라감
  • 자동 초기화
class Person { int age; }

3) 클래스 변수 (static 변수)

  • static 키워드 사용
  • 클래스 하나당 하나만 존재
  • 모든 객체가 공유
class Person { static int count; }

5️⃣ 변수 명명 규칙

✅ 가능

  • 영문자, 숫자, _, $
  • 숫자로 시작 ❌
  • 예약어 사용 ❌

✅ 관례 : 카멜표기법(camel case) ⭐

  • 단어 경계를 대문자로 구분하며, 전체적으로는 소문자
int studentCount; String userName;

6️⃣ 상수 (final 변수)

  • 값 변경 불가
final double PI=3.14159;
📌 관례: 대문자 + 언더스코어
 

2. Call by Value 와 Call By Reference

1️⃣ Call By Value (값에 의한 호출)

1) Call By Value 란?

함수(메서드)에 을 복사해서 전달하는 방식
함수 안에서 값을 바꿔도 원본은 변하지 않음
  • Byte
  • Int
  • Double
  • Boolean
교재 ‘Power JAVA’ p.55 표 참고

2) 예시

void change(int x) { x = 100; } int a=10; change(a); System.out.println(a); // 10
📌 이유
  • a의 값(10)이 x복사
  • x만 바뀌고 a는 그대로

3) 실습

notion image
package ex01; public class Var01 { public static void main(String[] args) { byte a1 = 100; int a2 = 2000000000; double a3 = 1.5; boolean a4 = true; System.out.println(a1); } }
notion image

2️⃣ Call By Reference (참조에 의한 호출)

1) Call By Reference 란?

함수에 원본이 있는 주소(참조)를 전달하는 방식
함수 안에서 변경하면 원본도 변경
  • String
교재 ‘Power JAVA’ p.60-61 참고

2) 예시

void change(int[] arr) { arr[0] = 100; } int[] nums = {10}; change(nums); System.out.println(nums[0]);// 100
📌 배열의 주소를 전달 → 같은 객체를 가리킴

3) 실습

notion image
package ex01; public class Var02 { public static void main(String[] args) { String a1 = "hellooooo"; System.out.println(a1); } }
notion image

3️⃣ 필기 정리

notion image
 

3. 교재 예제

1) 예제 2-1(p.60)

package ex02; public class Light { public static void main(String[] args) { final double LIGHT_SPEED = 3e5; double distance; distance = LIGHT_SPEED * 365 * 24 * 60 *60; System.out.println("빛이 1년 동안 가는 거리 : " + distance + " km."); } }
notion image

2) 예제 2-2(p.60)

package ex02; public class AreaTest { public static void main(String[] args) { final double PI = 3.141592; double radius, area; radius = 5.0; area = PI * radius * radius; System.out.println("반지름이 5인 원의 면적은 " + area); } }
notion image
Share article