티스토리 뷰

객체 지향 프로그래밍 (OOP : Object Oriented Programming)


객체 지향 프로그래밍이란 말 그대로 객체를 사용해서 프로그래밍을 하는 것을 권장 (지향)하는 방식이다.

여기서 객체라는 의미에 주목을 할 필요가 있다. 단어 자체가 추상적이지만 우리는 그 뜻을 아예 모르는 것은 아니다!

 

가장 이해하기 쉬운 것이 우리 생활에 객체가 어디 있는지 살펴보는 것이다. 

그 예로.. 카카오톡의 메세지를 볼 것이다 !

 

왼쪽 카카오톡을 한번 살펴보자.

가장 간단하게, 우리는 Data라고 인식할 수 있는 부분이 빨간 네모를 쳐둔 총 8개일 것이다.

 

하지만 우리는 메세지 3개로 인식한다.

 

왜일까? 보이는 데이터는 8개인데, 그렇다면 변수도 똑같이 8개를 가지고 있어야 하는 게 아닌가?

 

그 이유는 메세지가 객체의 개념을 가지고 있기 때문이다.

 

우리는 위와 같이 메세지를 인식한다.

 

그럼 간단하게 메세지 구성요소 몇개만 추려서 자바로 만들어 보자.

여기서는 보내는 사람, 메세지 내용, 보낸 시각, 읽음표시 총 4개의 구성요소를 살펴보겠다.

 

# 구성요소
보내는 사람	String
내용		String
보낸시각		String
읽음표시		int

# 메세지의 구성
메세지 = 보내는 사람 + 내용 + 보낸시각 + 읽음표시

만약, 메세지 하나를 만든다고 할 때 위 4개의 구성요소를 모두 만들어야 한다.

한번 생각해보자, 메세지 1개를 만들 때 4개의 데이터를 모두 생성한다는 건 너무 비효율 적이 아닌가?

 

저런 방식보다는 메세지의 구성요소를 따로따로 낱개로 만드는 것이 아니라 하나의 묶음으로 만든다면 어떨까?

즉, 메세지를 만들 때 필요한 구성요소가 들어갈 수 있는 자리가 알아서 생기면 편하지 않을까?

 

여기서 바로 객체라는 개념이 필요해지는 것이다.

Message라는 객체를 생성하기 위해서는 Java에게 명시를 해주어야 한다.

 

자 이제, 코드를 살펴보자.

 

 

Message


우선, Java에게 Message라는 녀석이 어떻게 생겨먹었는지 알려주어야 한다.

단지 Message라는 객체를 생성하는 과정이기 때문에 값은 할당하지 않는다. 왜?

어떤 사람이 어떤 시각에 어떤 메세지를 보낼지 모르기 때문이다.

 

단지 메세지를 만들 때, 내가 필요한 구성요소가 들어갈 수 있는 자리만 미리 할당을 해두는 것이다.

마치 시험지에 이름, 수험번호를 비워두고 수험생이 직접 해당 영역에 값을 채우는 것처럼 말이다 !

 

public class Message {
    String sender;
    String text;
    String time;
    int read;
}

 

위와 같은 구문이 있으면, 이제 Java에서는 Message 라는 새로운 DataType을 인식할 수 있게 된다.

그리고 그 DataType은 총 4개의 원시형 데이터로 구성되어 있다는 것도 이해할 수 있다.

 

그럼 이제 Message 객체를 사용해보자.

 

public class Test01 {
    public static void main(String[] args) {
        // Message 객체를 1개 생성
        // new : 동적 할당 연산자
        // a라는 이름으로 Message 객체를 신규 생성
        Message a = new Message();
        a.sender = "부장님";
        a.text = "OO씨 오늘 수고했고, 내일 늦지말고 출근하세요^^";
        a.time = "오전 1:47";
        a.read = 0;

        // 또 새로운 메세지를 만들 때는 다른 이름으로 생성할 수 있음.
        Message b = new Message();
        b. sender = "나";
        b.text = "bla bla...";
        b.time = "오전 1:48";
        b.read = 0;

    }
}

위에 첨부했던 메세지를 기반으로 만들었다.

우선 Message라는 객체를 생성하는 구문이 바로 new Message()이다. 그리고 바로 위에서 언급했듯이 해당 DataType을 가지는 변수를 선언하는 것이다.

 

그리고 해당 변수를 통해서 위에서 생성했던 Message라는 객체의 구성요소에 직접 값을 입력하는 것이다.

또한, 다른 이름으로 Message 객체를 생성하면 a와 b는 서로 다른 값을 가지게 된다.

 

 

댓글
링크
최근에 올라온 글
Total
Today
Yesterday