반응형
이번 강의에서는 자바 클래스와 필드, 메서드 등에 적용할 수 있는
접근 제한자(access modifier)에 대해 학습합니다.
접근 제한자는 코드의 보안성과 설계 구조를 명확하게 만들기 위해 사용되며,
패키지 또는 객체 간 접근을 제어합니다.
📦 클래스 코드 (Korean.java)
package ch06.sec11.exam01;
public class Korean {
final String nation = "대한민국";
final String ssn;
String name;
public Korean(String ssn, String name) {
this.ssn = ssn;
this.name = name;
}
}
📌 실행 코드 (KoreanExample.java)
package ch06.sec11.exam01;
public class KoreanExample {
public static void main(String[] args) {
Korean k1 = new Korean("123456-1234567", "자바킴");
System.out.println(k1.nation);
System.out.println(k1.ssn);
System.out.println(k1.name);
k1.name = "김자바";
}
}
💬 코드 설명
- final String nation = "대한민국";
→ 선언과 동시에 초기화한 필드 → 절대 변경 불가 - final String ssn;
→ 생성자에서만 초기화할 수 있음 → 이후 변경 불가 - String name;
→ 일반 필드 → 자유롭게 읽고 쓸 수 있음 - 생성자 Korean(String ssn, String name)
→ 객체 생성 시 주민등록번호와 이름을 초기화 - k1.name = "김자바";
→ name 필드는 수정 가능 (final이 아님)
💻 실행 결과
대한민국
123456-1234567
자바킴
※ name을 "김자바"로 변경했지만 출력은 안 했기 때문에 변경 내용은 확인되지 않음.
📌 간단 정리
필드명 | final 여부 | 설명 |
nation | O | "대한민국" 고정, 변경 불가 |
ssn | O | 생성자에서만 초기화 가능, 이후 변경 불가 |
name | X | 자유롭게 변경 가능 |
💡 포인트 정리
- final 필드는 한 번만 초기화 가능하며 이후 수정 불가
- 선언과 동시에 초기화하거나, 생성자에서 초기화해야 함
- 개인 식별정보(ssn 등)처럼 절대 변하지 않아야 하는 값에 final을 적용
- 일반 필드는 자유롭게 읽고 쓸 수 있지만, 설계에 따라 final 적용 여부를 결정
'Java > 자바 정리' 카테고리의 다른 글
53. 접근 제한자에 따른 접근 가능 범위 (public, default, private) (0) | 2025.04.29 |
---|---|
52. 패키지와 import 사용하기 (0) | 2025.04.29 |
51. static final로 상수(Constant) 정의하기 (0) | 2025.04.29 |
49. static 메서드에서 인스턴스 멤버 사용하기 (2) | 2025.04.28 |
48. static 필드와 static 메서드 (0) | 2025.04.28 |
47. this를 활용한 메서드 호출과 객체 동작 (0) | 2025.04.28 |