1. 접근 제어 지시자(access modifier)
- default: 같은 패키지 내부에서만 접근 가능(상속 관계라도 패키지가 다르면 접근 불가)
- prvate: 같은 클래스 내부에서만 접근 가능(외부 클래스, 상속 관계의 클래스에서 접근 불가)
- protected: 같은 패키지나 상속관계의 클래스에서만 접근 가능
- public: 클래스의 외부 어디서나 접근 가능
2.get() / set() 메서드
- private를 선언된 멤버 변수에 접근, 수정할 수 있는 메서드를 public으로 제공한다.
- get() 메서드만 제공된 경우 read-only이다.
3. 캡슐화
- 하나의 목적을 이루기 위해 관련있는 모든 것을 하나의 캡슐에 담아두는 것
- 꼭 필요한 정보와 기능만 외부에 오픈(객체 내부 구조를 외부에서 알지 못하게 함 -> 외부에서 객체를 사용할 때 객체 내부 상태에 대한 직접적인 접근 막을 수 있다.)
- 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류 최소화 가능
* 레포트 만들기 예제
public class MakeReport {
StringBuffer buffer = new StringBuffer();
private String line = "===========================================\n";
private String title = " 이름\t 주소 \t\t 전화번호 \n";
private void makeHeader()
{
// 현업(?)에서는 buffer에 append을 이용해 출력할 내용(?)을 추가함(for문을 이용해서)
buffer.append(line);
buffer.append(title);
buffer.append(line);
}
private void generateBody()
{
buffer.append("James \t");
buffer.append("Seoul Korea \t");
buffer.append("010-2222-3333\n");
buffer.append("Tomas \t");
buffer.append("NewYork US \t");
buffer.append("010-7777-0987\n");
}
private void makeFooter()
{
buffer.append(line);
}
public String getReport()
{
makeHeader();
generateBody();
makeFooter();
return buffer.toString();
}
}
public class TestReprt {
public static void main(String[] args) {
MakeReport report = new MakeReport();
String builder = report.getReport();
// getReport() 메서드에만 직접적인 접근이 가능하다.
// getReport() 메서드를 호출하면 필요한 다른 메서드가 호출됨(캡슐화)
System.out.println(builder);
}
}
* 본 게시글은
패스트 캠퍼스 "한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지" 강의를 통해 배운 내용을 정리한 게시글입니다.
'Java' 카테고리의 다른 글
[Java] 배열 (0) | 2024.07.11 |
---|---|
static 변수 (0) | 2024.07.07 |
[Java] 객체 자신을 가리키는 this (0) | 2024.07.07 |
생성자(constructor)와 생성자 오버로딩 (0) | 2024.07.05 |
[Java] 인스턴스 생성과 힙 메모리 (1) | 2024.07.05 |