
'김영한의 실전 자바' 강의를 보고 정리하였습니다.
변수와 초기화
변수의 종류
멤버 변수(필드): 클래스에 선언
- 지역 변수: 메서드에 선언 (매개변수도 지역 변수의 한 종류)
멤버 변수, 필드 예시
public class Student {
String name;
int age;
int grade;
}
Student 클래스 내에 선언
name, age, grade 👉🏻 멤버 변수
지역 변수 예시
public static void main(String[] args) {
Student student1;
student1 = new Student();
Student student2 = new Student();
}
main() 메서드 내에 선언
student1, student2 👉🏻 지역 변수
public class MethodChange1 {
public static void main(String[] args) {
int a = 10;
System.out.println("메서드 호출 전: a = " + a);
changePrimitive(a);
System.out.println("메서드 호출 후: a = " + a);
}
static void changePrimitive(int x) {
x = 20;
}
}
changePrimitive() 메서드 내에 선언
a, x(매개변수) 👉🏻 지역 변수
지역 변수는 이름 그대로 특정 지역에서만 사용되는 변수라는 뜻이다.
변수 x는 changePrimitive() 메서드의 블록에서만 사용되고, 메서드가 끝나면 제거된다.
마찬가지로, 변수 a도 main() 메서드가 끝나면 제거된다.
변수의 값 초기화
- 멤버 변수: 자동 초기화
- 인스턴스의 멤버 변수는 인스턴스를 생성할 때 자동으로 초기화된다.
- 숫자(int) = 0, boolean = false, 참조형 = null
- 개발자가 초기값을 직접 지정할 수 있다.
- 지역 변수: 수동 초기화
- 지역 변수는 항상 직접 초기화해야 한다.
멤버 변수의 초기화
public class InitData {
int value1; // 초기화 하지 않음
int value2 = 10; // 10으로 초기화
}
public class InitMain {
public static void main(String[] args) {
InitData data = new InitData();
System.out.println("value1 = " + data.value1);
System.out.println("value2 = " + data.value2);
}
}
💡new로 생성하는 것들은 자바에서 인스턴스 값들을 알아서 초기화해 준다.

value1은 초기값을 지정하지 않았지만 자동으로 0으로 초기화된 것을 확인할 수 있다.
value2는 10으로 초기값을 지정해 두었기 때문에 객체를 생성할 때 10으로 초기화된다.
'Java' 카테고리의 다른 글
[JAVA] 3. 객체 지향 프로그래밍 (1) | 2024.07.12 |
---|---|
[JAVA] 2-3. 기본형과 참조형 - null (0) | 2024.07.12 |
[JAVA] 2-1. 기본형과 참조형 (0) | 2024.06.28 |
[JAVA] 1. 클래스와 데이터 (0) | 2024.06.26 |

'김영한의 실전 자바' 강의를 보고 정리하였습니다.
변수와 초기화
변수의 종류
멤버 변수(필드): 클래스에 선언
- 지역 변수: 메서드에 선언 (매개변수도 지역 변수의 한 종류)
멤버 변수, 필드 예시
public class Student {
String name;
int age;
int grade;
}
Student 클래스 내에 선언
name, age, grade 👉🏻 멤버 변수
지역 변수 예시
public static void main(String[] args) {
Student student1;
student1 = new Student();
Student student2 = new Student();
}
main() 메서드 내에 선언
student1, student2 👉🏻 지역 변수
public class MethodChange1 {
public static void main(String[] args) {
int a = 10;
System.out.println("메서드 호출 전: a = " + a);
changePrimitive(a);
System.out.println("메서드 호출 후: a = " + a);
}
static void changePrimitive(int x) {
x = 20;
}
}
changePrimitive() 메서드 내에 선언
a, x(매개변수) 👉🏻 지역 변수
지역 변수는 이름 그대로 특정 지역에서만 사용되는 변수라는 뜻이다.
변수 x는 changePrimitive() 메서드의 블록에서만 사용되고, 메서드가 끝나면 제거된다.
마찬가지로, 변수 a도 main() 메서드가 끝나면 제거된다.
변수의 값 초기화
- 멤버 변수: 자동 초기화
- 인스턴스의 멤버 변수는 인스턴스를 생성할 때 자동으로 초기화된다.
- 숫자(int) = 0, boolean = false, 참조형 = null
- 개발자가 초기값을 직접 지정할 수 있다.
- 지역 변수: 수동 초기화
- 지역 변수는 항상 직접 초기화해야 한다.
멤버 변수의 초기화
public class InitData {
int value1; // 초기화 하지 않음
int value2 = 10; // 10으로 초기화
}
public class InitMain {
public static void main(String[] args) {
InitData data = new InitData();
System.out.println("value1 = " + data.value1);
System.out.println("value2 = " + data.value2);
}
}
💡new로 생성하는 것들은 자바에서 인스턴스 값들을 알아서 초기화해 준다.

value1은 초기값을 지정하지 않았지만 자동으로 0으로 초기화된 것을 확인할 수 있다.
value2는 10으로 초기값을 지정해 두었기 때문에 객체를 생성할 때 10으로 초기화된다.
'Java' 카테고리의 다른 글
[JAVA] 3. 객체 지향 프로그래밍 (1) | 2024.07.12 |
---|---|
[JAVA] 2-3. 기본형과 참조형 - null (0) | 2024.07.12 |
[JAVA] 2-1. 기본형과 참조형 (0) | 2024.06.28 |
[JAVA] 1. 클래스와 데이터 (0) | 2024.06.26 |