Back-End/Java 기초정리

Java ■ 접근제어자와 캡슐화, 예약어

SIKIDA 2024. 4. 23. 21:37
728x90

 

◈ 접근제어자

이름 그대로 접근을 제한하며, 캡슐화(정보은닉)의 개념 중 하나 아래 표에서

클래스를 제외한 필드와 메소드의 제어자는 같다.

 

 

◈ 클래스 접근제어자

• 클래스 default

같은 패키지에서만 접근이 가능하므로 에러 발생

 

 

◈ 멤버변수&메소드 접근제어자

 

• 멤버변수&메소드 default

같은 패키지에서만 접근 가능하므로, 다른 패키지일 때 자식 클래스이더라도 접근 불가

 

• 멤버변수&메소드 protected

다른 패키지에 있는 자식 클래스에서 사용 가능 default 또는 private으로 할 경우 불가

 

 

 

◈ 캡슐화

변수와 메서드를 클래스로 묶어 독립적으로 동작하지 않도록 하거나 불필요한 정보를 노출시키지 않는 개념

 

1. 코드의 유지보수성을 향상

2. 객체의 내부 구현을 외부로부터 숨김 (정보 은닉)

3. 객체의 내부 상태를 제어하고, 잘못된 접근으로부터 보호함

 

• 참고

접근제어자를 통해 정보를 은닉하며 대표적인 예시로는 getter, setter가 있음

 

• getter , setter를 사용하는 이유

1. 정보 은닉

-> 변수에 직접 접근을 막음(private)으로써 객체의 내부 구현을 감추는 역할이 가능

2. 데이터 유효성 검사

-> getter, setter 메소드 내에서 유효성을 검사하도록 개발하여 잘못된 데이터의 저장을 사전에 방지하여 무결성을 유지할 수 있음

3. 그 외에도 데이터의 변경에 관련된 추가 기능을 구현해야 할 경우 getter, setter 메소드를 통해 부가적인 동작을 추가할 수 있음

 

 

◈ static

멤버 변수와 메서드에 사용이 가능하며 정적 영역(Method or Static) 메모리에 저장됨 정적 영역 메모리에 저장된다면 당연히 별도의 인스턴스를 생성하지 않고도 사용이 가능함

 

 

◈ static - 정적 메모리 이해하기 

 

 

◈ final

더 이상 변경될 수 없는 상태를 뜻함

1. 클래스 : 자식 클래스를 가질 수 없음 (상속 불가)

2. 메소드 : 오버라이딩을 할 수 없음

3. 멤버 변수 : 변경할 수 없는 값 (상수)

4. 지역 변수 : 변경할 수 없는 값 (상수)

 

 

• 클래스

final을 사용할 경우 상속 사용 시 에러 발생

 

 

• 메소드

final을 사용할 경우 오버라이딩 사용 시 에러 발생

 

• 변수

final을 사용할 경우 값 변경 시 에러 발생

 

 

 

 

오늘은 접근제어자와 캡슐화 그리고 예약어 관련하여 공부를 진행하였다.

자바 복습을 더 강화해서 공부를 진행해야겠다!

그리고 5월달 정보처리기사, SQLD 화이팅!  그럼 20000

'Back-End > Java 기초정리' 카테고리의 다른 글

Java ■ 추상화  (0) 2024.04.25
Java ■ 다형성(Polymorphism)  (0) 2024.04.24
Java ■ 상속  (2) 2024.04.21
Java ■ 생성자, this, this()  (2) 2024.04.20
Java ■ 호출 스택과 기본형,참조형 매개변수  (0) 2024.04.19