'스프링 입문을 위한 ~' 책 내용중 자바와 객체 지향 내용을 간단하게 정리하려고 한다.
우선 자바 객체 지향의 특성은 4가지다. 캡슐화, 상속화, 추상화, 다형성인데 이것을 간단하게 기억하기 위해 '캡! 상추다'라고 기억하면 편하다.
캡슐화란 무엇일까. 한줄로 설명하자면 정보를 은닉화 또는 공개화라고 생각한다. public, private, protected, default를 선언하면서 각각의 변수 또는 메소드가 다른 클래스에서 어디까지 접근할 것인지 공개 범위를 지정해주는 것이라고 생각한다. 캡슐화 함으로써 무엇이 좋은가? 무분별한 접근을 막을 수 있고, 통일성 있는 코드 작성이 가능하다.
상속화의 경우 객체의 공통된 특성을 하나로 추상화한 상위 클래스를 하위 클래스에 상속시키는 것을 뜻한다. 상속화가 편리한 이유는 각각의 공통된 속성을 일괄 적용 할 수 있다는 점인데, 예를 들면 '미키마우스', '제리' 등과 같이 쥐 종류의 캐릭터를 각각의 객체라고 한다면 상위 클래스는 쥐일 것이다. 쥐의 공통된 특성은 다리가 4개이며, 눈이 2개, 꼬리가 1개라는 점인데 이것을 각각의 캐릭터를 생성할 때 작성할 필요없이 상위 클래스(쥐 클래스)를 상속 받음으로써 일괄 적용할 수 있게 된다.
추상화란 모델링과 같다. 즉, 공통된 특성과 내용을 추상화 시키는 것인데 위의 상속화 내용을 보면 알 수 있다. '미키마우스'와 '제리'의 공통된 특성을 추상화한 '쥐'를 통해 모델링했다고 볼 수 있다.
다형성은 같은 메소드 명이라도 오버로딩되거나 오버라이딩을 통해 제각각의 기능을 발위 할 수 있는 것인데, 그럼으로써 우리는 좀 더 편리하게 코드를 작성 할 수 있게 되었다. 다형성이 존재하지 않았다면, 우리는 자바 언어를 사용하면서 같은 메소드 명으로 여러 기능을 사용하는데 제한이 있었을 것이다.
4가지 카테고리를 구체적으로 설명하지 못했으나 책을 읽어보면 보다 확실하게 알 수 있을 것이다. 작성자(=나)의 경우 책을 읽으면서 뭔가 깨닫는 기분을 많이 얻었는데, 아직 객체 지향이 뭔지 모르겠다면 꼭 이 책('스프링 입문을 위한 자바 객체 지향의 원리와 이해')을 읽어보기 바란다.
추가로, 제대로 설명할 줄 알아야 안다고 말할 수 있는 것인데... 난 아직 멀었다.. 다시 한번 읽어봐야겠다.
'etc' 카테고리의 다른 글
Github SSH 다중 연결(Mac) (0) | 2022.11.01 |
---|---|
SQLD 자격증 후기 (0) | 2022.07.30 |
역시 (개발)책을 읽어야해 (0) | 2022.06.21 |
P2P? P2P!!! (0) | 2022.06.21 |