저번에는 객체지향의 정의와 장단점에 대해 알아보았습니다. 사실, 저번 글은 저희 스터디원의 설명이 아닌 코드잇에서 공부한 것을 많이 따왔습니다. 이번엔 스터디원이 알려준 객체지향에 대해 좀더 자세히 알아보도록 하겠습니다.
바로 캡슐화, 상속, 다형성 입니다. 이들은 객체 지향의 3가지 특성이라고 하는데요, 먼저 캡슐화에 대해 알아보도록 합시다.
캡슐화(encapsulation)란?
- 객체의 속성과 행위(method)를 하나로 묶는 것.
캡슐화는 정보를 은닉하는 특성을 가집니다. 그래서 중요한 정보나 기능은 외부에서 접근을 하지 못하게 됩니다.
보시다시피 학점에 대해서 캡슐화를 했더니 Park 학생의 이름, 나이, 학번은 출력이 되지만 학점은 no attribute 라고 하여 오류가 뜹니다. 이렇게 캡슐화는 __를 써서 정보를 은닉하는 특성을 가지고 있습니다.
상속(Inheritance)이란?
- 자식(하위,파생)이 부모(상위)의 클래스를 물려받는 것
만일 각각 선언을 받다보면 복제할 때 생기는 오류 불일치가 발생하여 문제가 발생합니다.
위의 예제처럼 Person 부모클래스를 자식클래스인 Student 가 상속받았습니다. 이렇게 자식이 부모를 선택해서 물려받는 것을 바로 상속이라고 합니다. 이렇게 되면 자식클래스를 개발할 때 부모클래스를 바로 사용할 수 있으니 개발 속도가 빨라질 것입니다. 또한, 수정할려면 부모클래스에서 수정해도 자동으로 자식클래스는 수정되니 유지 보수에도 정말 용이하겠습니다. 코딩에서는 효.율.이 가장 중요한데 중복을 줄여주고, 개발 속도는 물론 유지 보수에도 용이하니 정말 좋은 것 같습니다.
다형성이란?
- 다양한 행동을 구현하는 것
예를 들어 동물들이 짓을 때, 다양한 동물들이 다양한 울음소리들로 짓겠죠. 이를 코드로 다시 살펴봅시다.
이름이 Mong 과 Kang 인 고양이와 Chok 인 강아지가 있습니다. 이들의 울음소리는 어떤지 알아보고 싶습니다. 부모클래스인 Animal 를 만들고, 각각 Cat, Dog 자식클래스를 적어봤습니다. 결과를 출력하니 고양이는 Nang!, 강아지는 Wal!이라고 짓는군요. 귀엽네요 ///_///
이렇게 객체 지향의 3가지 특성에 대해서 실습 예제와 함께 알아보았는데요, 좀더 자세히 알고 싶다면 아래 링크로 들어가면 됩니다. 아주 정리가 잘 되어있습니다! 저는 끄적끄적 거린 정도니 이 글을 읽고 객체 지향에 흥미를 느끼셨다면 더 공부해보시길 바랍니다.
▼ 참고링크
'스터디 정리' 카테고리의 다른 글
혼자 공부하는 SQL 2주차 (0) | 2022.07.14 |
---|---|
혼자 공부하는 SQL 1주차 (0) | 2022.07.05 |
그래프 데이터베이스(Graph Database) (0) | 2021.04.22 |
객체 지향1 (1) | 2021.02.22 |
인공지능의 기초 (0) | 2020.10.29 |
댓글