OOP 아직도 어렵다고? (1)

Eden·2025년 6월 3일
0

TIL

목록 보기
132/133
post-thumbnail

사실 우리네 인생도 객체지향프로그래밍이다.

Class는 정체성

클래스는 사람들의 역할정체성을 정의한다.

예를 들면, 학생, 개발자, 예술가 등등

class Developer {
	var name: String
    func code() {
    	print("\(name)이는 코딩 중")
    }
}

객체는 '나'

클래스를 바탕으로 태어난 존재가 객체다.
나는 Developer 클래스에서 만들어진 하나의 인스턴스다!

let eden = Developer(name: "eden")
eden.code() // eden이는 코딩 중

상속은 부모님에게 물려받은 것

Human이라는 부모 클래스를 상속받은 Developer 클래스

class Human {
	func sleep() { print("자는 중") }
}

class Developer: Human {
	func code() { print("코딩 중") }
}

let sangsok = Developer()
sangsok.sleep() // 부모로부터 물려받은 행동
sangsok.code()  // 나만의 능력

다형성은 '같은 말 다른 행동'

"일해라!"라고 했을 때,
개발자는 코딩하고, 디자이너는 디자인하고, 마케터는 마케팅하고, 운동선수는 운동함.

protocal Worker {
	work()
}

class Developer: Worker {
	print("코딩 중")
}

class Designer: Worker {
	print("디자인 중")
}

class Marketer: Worker {
	print("마케팅 중")
}

class Athelete: Worker {
	print("운동 중")
}

let people: [Worker] = [Developer(), Designer(), Marketer(), Athelete()]
for person in people {
    person.work()
}

캡슐화는 '사생활 보호'

사람은 속마음을 다 보여주진 않는다
private한 감정이나 정보는 다른 사람이 알 수 없다.

class Person {
    private var secret = "나만의 비밀"
    func speak() {
        print("안녕하세요")
    }
}

추상화는 '명함에 적힌 정보만 보여주는 것'

사람은 자신을 한 줄로 소개한다.
"저는 개발자예요" → 내부 구현은 굳이 말 안 해도 됨.

정리

OOP인생
클래스직업, 역할, 정체성
객체살아 있는 사람
상속부모에게 물려받은 것
다형성같은 말, 다른 행동
캡슐화사생활 보호
추상화명함에 적힌 정보만 노출
profile
🌐 Frontend &&  iOS && 대학생

0개의 댓글