객체 지향이란?

기록하는 용도·2022년 6월 9일
0

김씨의 계좌에서 최씨의 계좌로 이체해준다고한다.
이 상황을 프로그램으로 표현한다면?

-> 객체지향 프로그래밍

이 경우,
Person이라는 객체와 BankAccount라는 객체로 나눌 수 있다.

객체는 속성(변수)들과 동작(메소드(함수))의 묶음이라고 할 수 있는데
그렇다면 이 두 객체는 어떤 속성과 어떤 동작들이 있을까?

Person객체

이름(name)
나이(age)
보유 현금(cashAmount)
소유 계좌(account)

BankAccount객체

잔액(balance)
소유인(owner)

입금(deposit)
출금(withdraw)
이체(transfer)


여기서 김씨의 계좌가 이렇게 존재한다고 가정하자.

Person p1

이름(name) -> "김아무개"
나이(age) -> 28
보유 현금(cashAmount) -> 30000
소유 계좌(account) -> a1

BankAccount a1

잔액(balance) ->100000
소유인(owner) -> p1

입금(deposit)
출금(withdraw)
이체(transfer)

여기서 a1에는 입출금 기능도 존재하는데, 만약 입금을 하게된다면

a1.deposit(20000)

으로,
p1의 현금액수 (보유현금 cashAmount)가 30000에서 10000으로 줄어들고
a1의 잔액(balance)는 100000에서 120000으로 변경된다.


이제, p2라는 사람 객체와 a2라는 은행계좌 객체가 똑같이 존재한다고하자.

Person p2

이름(name) -> "최아무개"
나이(age) -> 26
보유 현금(cashAmount) -> 20000
소유 계좌(account) -> a2

BankAccount a2

잔액(balance) ->100000
소유인(owner) -> p2

입금(deposit)
출금(withdraw)
이체(transfer)

마찬가지로 a2는 p2의 소유 계좌이고, p2는 a2의 소유인이다.

여기서 a1에서 p2의 계좌로 이체해주면 어떻게 될까?

a1.transfer(p2, 20000)

BankAccount a1

잔액(balance) ->80000
소유인(owner) -> p1

입금(deposit)
출금(withdraw)
이체(transfer)

BankAccount a2

잔액(balance) ->120000
소유인(owner) -> p2

입금(deposit)
출금(withdraw)
이체(transfer)

이렇게 정보와 동작들을 객체 단위로 묶고,
이런 객체들을 연결시키면서 정리하는 프로그래밍 방식이 객체 지향 프로그래밍이다.

0개의 댓글