일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- network
- 스위치
- oracle
- class
- next.js
- Router
- Layer4
- nextjs
- 네트워크
- Mac
- Next
- SQLD
- OSI
- dhcp
- java
- Port
- Packet
- 함수형
- 포트
- Layer2
- Python
- 프로그래밍
- 자바
- frame
- Linux
- Layer
- 자격증
- 오라클
- 자바8
- ip 할당
- Today
- Total
BEER&DEV
자바의 접근 제어자: 초보자를 위한 꼬리의 꼬리를 무는 자바 본문
자바에서는 접근 제어자(access modifier)를 사용하여 클래스의 멤버(속성과 메소드)의 접근 범위를 지정할 수 있습니다. 접근 제어자는 클래스 외부에서 멤버에 접근할 수 있는지를 제어하여 코드의 캡슐화와 보안을 강화합니다. 이번 글에서는 초보자를 위해 자바의 접근 제어자에 대해 예시와 함께 자세히 설명하겠습니다.
1. 자바의 접근 제어자
자바에서는 네 가지의 접근 제어자를 사용할 수 있습니다:
- `public`: 어떤 클래스에서든 접근할 수 있는 가장 넓은 범위의 접근 제어자입니다. `public`으로 선언된 멤버는 외부 클래스에서 직접 접근이 가능합니다.
- `private`: 동일 클래스 내에서만 접근할 수 있는 가장 제한적인 범위의 접근 제어자입니다. `private`으로 선언된 멤버는 외부에서 직접 접근할 수 없으며, 클래스 내부의 다른 멤버를 통해서만 접근할 수 있습니다.
- `protected`: 동일 패키지 내의 클래스와 해당 클래스를 상속한 클래스에서 접근할 수 있는 범위의 접근 제어자입니다. `protected`로 선언된 멤버는 외부 패키지에서는 직접 접근할 수 없지만, 상속 관계에 있는 하위 클래스에서는 접근이 가능합니다.
- `default` (기본 접근 제어자): 접근 제어자를 명시하지 않은 경우, `default` 접근 제어자로 간주됩니다. 동일 패키지 내의 클래스에서만 접근이 가능하며, 외부 패키지에서는 접근할 수 없습니다.
2. 접근 제어자의 예시
다음은 접근 제어자를 예시와 함께 설명하는 코드입니다:
public class MyClass {
private int privateAttribute;
public String publicAttribute;
protected boolean protectedAttribute;
int defaultAttribute;
private void privateMethod() {
// private 메소드 내용
}
public void publicMethod() {
// public 메소드 내용
}
protected void protectedMethod() {
// protected 메소드 내용
}
void defaultMethod() {
// default 메소드 내용
}
}
위의 예시에서 `MyClass` 클래스에는 `privateAttribute`, `publicAttribute`, `protectedAttribute`, `defaultAttribute`라는 네 개의 멤버 변수가 선언되어 있습니다. 이들 멤버 변수는 각각 `private`, `public`, `protected`, `default` 접근 제어자로 지정되었습니다.
또한, `privateMethod()`, `publicMethod()`, `protectedMethod()`, `defaultMethod()`라는 네 개의 메소드가 선언되었는데, 이들 메소드도 각각 해당 접근 제어자로 지정되었습니다.
3. 접근 제어자의 활용 예시
public class Main {
public static void main(String[] args) {
MyClass myObject = new MyClass();
myObject.publicAttribute = "Public value"; // public 속성에 접근 가능
myObject.publicMethod(); // public 메소드 호출 가능
// 아래 코드는 컴파일 에러 발생 (접근 제어자에 따라 접근 불가능)
// myObject.privateAttribute = 10; // private 속성에 접근 불가능
// myObject.privateMethod(); // private 메소드 호출 불가능
// protected 속성과 메소드는 동일 패키지 또는 하위 클래스에서 접근 가능
myObject.protectedAttribute = true;
myObject.protectedMethod();
// default 속성과 메소드는 동일 패키지에서만 접근 가능
myObject.defaultAttribute = 20;
myObject.defaultMethod();
}
}
위의 예시 코드에서 `Main` 클래스에서는 `MyClass` 객체를 생성하고, `publicAttribute`과 `publicMethod()`에 접근할 수 있습니다. 그러나 `privateAttribute`과 `privateMethod()`는 접근할 수 없으며, `protectedAttribute`과 `protectedMethod()`는 동일 패키지 또는 하위 클래스에서만 접근할 수 있습니다. `defaultAttribute`과 `defaultMethod()`는 동일 패키지에서만 접근할 수 있습니다.
자바의 접근 제어자는 클래스의 멤버에 대한 접근을 제어하여 코드의 캡슐화와 보안을 강화합니다
'BASIS > JAVA' 카테고리의 다른 글
자바의 메모리 할당과 가비지 컬렉터: 초보자를 위한 꼬리의 꼬리를 무는 자바 (0) | 2023.07.13 |
---|---|
자바의 클래스 인터페이스: 초보자를 위한 꼬리의 꼬리를 무는 자바 (0) | 2023.07.13 |
자바의 캡슐화: 초보자를 위한 꼬리의 꼬리를 무는 자바 (0) | 2023.07.13 |
자바 개발 환경 설정하기 - 초보자를 위한 꼬리의 꼬리를 무는 자바 (0) | 2023.07.12 |
자바(Java) 란: 초보자를 위한 꼬리의 꼬리를 무는 자바 (0) | 2023.07.12 |