내가 느끼는 객체지향(객체지향 쉽게 이해하기) with Java

김명래·2023년 2월 17일
0

흔히 객체지향이라고 한다면 현실에 있는 상호작용을 프로그램 세계에 옮겨오는것이라고들 한다. 그렇다면 현실 세계의 상호작용이란 무엇이며 이를 프로그램 언어(JAVA)로 어떻게 표현한다는 것일까?

현실세계의 27세 나이를 가지고있고 창동시에 거주하는 주민인 개발자 한원석이 있다고 생각해보자 (절대 필자와 아는 형이맞음)

먼저 이 한원석의 큰 집합을 찾아보는 과정을 class를 구상하는 혹은, 추상화하는 단계라고 생각한다

1. 한원석은 사람이다.

그렇다. 놀랍게도 한원석(27, 개발자, 남)은 사람이라는 큰집합속에 있다. 따라서 나이도 있으며 몸무게도 있고 성별도 있다.

class Human{
	int age;
    double weight;
    char gender;
}

이렇게 class를 생성하면 문제가 뭘까 ?

Human wonseok = new Human();
wonseok.age = 24;
wonseok.age = 26;

그런데 보자 누군가 사람의 나이를 마음대로 바꿀수 있으며 몸무게를 훔쳐본다는것은 있어서는 안된다. 그래서 우린 사용자가 함부로 접근할 수 없도록
접근제어자라는것을 통해 보호하거나 암호화한다.

class Human{
	private int age;
    private double weight;
    private char gender;
}

좋다. 여기까지는 순조롭다. 이제 원석이형에 특징중 하나를 들여다보자. 원석이형은 개발자 로써 다룰 수 있는 언어가 2개가 있다. 이러한 특징을 클래스에 추가하면 어떻게 될까?

class Human{
	private int age;
    private double weight;
    private char gender;
    private string language;
}

Human wonseok = new Human();
Human chulsu = new Human();

이런 ... 농사꾼 철수는 갑자기 언어 라는 정보를 가지게되는 맘에 안드는 상황이 발생했다.
잠깐... 그럼 개발자라는 집합을 class 로 만들면 되지않을까라는 생각을 하게된다.
Human 이라는 집합속에 Developer라는 집합이 있다는걸 자연스레 알수있다.
이때, 우리가 사용할 수 있는 객체지향의 특징인 상속을 이용할 수 있는것이다.

나머지는 2부에 해야징 👋

profile
독자보다 필자를 위해 포스팅합니다

0개의 댓글