1. 메소드와 클래스를 이해하기
물건 사기란 프로그램이 있다고 생각을 해보자.
편의점이란 클래스에 들어가서 우리는 필요한 물건을 고를 것이고, 가격을 확인한 뒤, 계산대에서 계산을 하고 나갈 것이다.
여기서 주목 할 것은 "무엇을 한다"라는 점이다. 그리고 편의점이 클래스가 되었다. 여기서 중요한 개념을 알게 된다.
"아, 그럼 메소드라는 것은 우리가 무엇을 하는 것이구나!"하고 말이다. 즉, 메소드란 요청에 의해 수행을 하는 것을 말한다.
우리가 무언가를 하는 것이다.
우리는 들어오고(하고), 물건을 고르고(또 하고), 계산을 하고, 나간다(한다).
2. 접근제어 지시자와 정보은닉, 그리고 캡슐화
그렇다면은 의문이 생긴다. "우리는 편의점이란 클래스에서 상품과 계산, 물건가격 메소드만을 이용했는데
다른 메소드는 안쓰니까 필요 없잖을까?" 하지만, 현실을 생각해보자. 재고가 있기에 상품이 있고, 재진열이 있기에
상품을 살 수 있고, 살 수 있다는 것은 물건 가격이 있어야하며, 수익이 있기에 월급을 주고, 월세를 내고, 청소할 수
있고, 상품을 사올 수 있다. 즉, 눈(!)에는 보이지 않지만, 그 기능을 수행(!)하고 있는 것이다.
이 눈에 보이지 않게 하는 것이 바로 접근제어 지시자를 통한 정보은닉이다. 어려울 것 없다. public(공개적인)과
private(개인적인), protected(보호되는)을 잘 활요하면 된다. 옆에 해석처럼 생각하면 된다.
즉, 우리가 자주쓰는 public static void main(String[] args){}; 는 공개적으로 사용하는 것이고, 만약
private void myYaDong() {} 이라고 한다면 그 클래스 이외에는 아무도 볼 수 없는 것이다.
그럼 캡슐화라는 것은 무엇일까? 캡슐화는 이런 클래스의 메소드들이 잘 기능 별로 쪼개져 있는 것과 클래스가
정해진 기능 범위를 갖추는 것을 말한다. 다시 말해서 범위를 정해서 그 범위에 해당하는 기능을 수행하는 것이다.
예를 들어서, 목감기약을 캡슐화 한다고 했을 때, 그 기능이 감기만을 잡지는 않을 것이다. 이와 동반되는
목마름, 통증, 기침, 가래도 잡을 수 있고, 심지어 두통까지도 잡을 수 있기 때문이다. 그래서 그 범위를 어디까지
설정하느냐는 프로그램의 규모를 가늠할 수 있는 척도가 되는 것이다.
'Java & Spring > Java 문법' 카테고리의 다른 글
자바 스터디 문제 2 (0) | 2013.07.18 |
---|---|
Java 기본 문법 문제 (0) | 2013.07.12 |
HashSet 해쉬셋 (0) | 2013.05.16 |
Static 에 관한 정리 (0) | 2013.01.30 |
자바의 메모리 구조 (0) | 2013.01.30 |
WRITTEN BY