객체 자체가 뭔지 가르칠때는 걍
절차 : 도구
객체 : 로봇
이런 개념임
예를 들어 배열의 합을 구하는 라이브러리를 만든다고 하자. 그럼
절차형:
Array arr = new Array();
sum(10); > 55
객체형:
Array arr = new Array(10);
getSum(); > 55
절차형은 어디까지나 도구니까 니가 초기값을 들고 지지고 볶아야함.
하지만 객체는 로봇이니까 처음 인스턴트를 만들때 객체 내부에서 알아서 sum값을 처리해 둠(이게 객체의 캡슐화)
실제론 어떤식으로 도움이 되냐면...
만약에 니가 A클래스에서 B 인스턴스의 sum값을 구하고 싶다고 하자 근데 B인스턴스는 C 클래스에서 생성이 되고 D변수를 참조해. 근데 A클래스에서 D변수 접근이 안된다면???
이런 경우에도 캡슐화된 객체는 사용성을 100% 보장할 수 있지.
그 외에도 더 중요한 여러가지 이점이 있는데 그건 말로 설명하긴 어렵고 코딩하면서 느끼는게 좋음 ㅎ
절차 : 도구
객체 : 로봇
이런 개념임
예를 들어 배열의 합을 구하는 라이브러리를 만든다고 하자. 그럼
절차형:
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
난 코드보다 글이 더 이해 잘가던데 코드는 기억에 남기려 보는거구