객체 자체가 뭔지 가르칠때는 걍

절차 : 도구
객체 : 로봇
이런 개념임

예를 들어 배열의 합을 구하는 라이브러리를 만든다고 하자. 그럼

절차형:
Array arr = new Array();
sum(10); > 55

객체형:
Array arr = new Array(10);
getSum(); > 55

절차형은 어디까지나 도구니까 니가 초기값을 들고 지지고 볶아야함.
하지만 객체는 로봇이니까 처음 인스턴트를 만들때 객체 내부에서 알아서 sum값을 처리해 둠(이게 객체의 캡슐화)

실제론 어떤식으로 도움이 되냐면...

만약에 니가 A클래스에서 B 인스턴스의 sum값을 구하고 싶다고 하자 근데 B인스턴스는 C 클래스에서 생성이 되고 D변수를 참조해. 근데 A클래스에서 D변수 접근이 안된다면???

이런 경우에도 캡슐화된 객체는 사용성을 100% 보장할 수 있지.

그 외에도 더 중요한 여러가지 이점이 있는데 그건 말로 설명하긴 어렵고 코딩하면서 느끼는게 좋음 ㅎ

- dc official App