자바의 정석 책과 안드로이드 앱스쿨에서 공부한 내용을 정리한 내용입니다.
이번에 멋쟁이 사자처럼에서 안드로이드 스쿨을 수강하면서 자바에 대하여 공부를 하게 되었는데 객체지향
에 대해 잘 알지 못하여 잊어버리지 않기 위해 기록을 하기로 생각을 하다가 차라리 TIL
형식으로 꾸준히 기록하기로 정했습니다!
기록할 내용은 윤재성 강사님께서 설명해 주신 내용과 자바의 정석 책을 통해 배운 내용을 기록하려 합니다.
객체지향은 실제 세계는 사물로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이라는 기본 개념을 가지고 있다.
프로그래밍을 하면서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들며 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
상속
을 통해 사용할 수 있습니다.즉, 코드의 재사용성이 높고 유지보수가 용이해요
장점도 있으면 단점
도 있는데 아무래도 객체지향을 올바르게 사용할려면 상속이라던지 캡슐화
, 다형성
, 추상화
이런 개념을 이용해야되서 절차지향 언어보다는 코딩 난이도가 높고
객체를 만들려면 속성과 기능에 대한 이해도가 필요해 설계하는 과정에서 개발하는 속도가 느려요
캡슐화
: 클래스에 선언한 변수의 접근 제한자를 private로 주고 접근을 못하게 차단 한 후 접근을 가능하도록 허용하는 변수만 메서드를 통해 접근 하도록 하는 방법을 캡슐화 라고 부른다.다형성
: 상속
에 대한 이해가 필요한데 간단하게 상속은 부모 클래스에게 메서드 혹은 변수를 물려받는 개념이다. 그리고 이 상속
을 통해 이름 뜻 처럼 많을 다
, 형상 형, 성품 성
상속을 통해 여러 가지 형태를 가질 수 있다. 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 해 다형성을 프로그램적으로 구현했어요.추상화
: 불필요한 부분들은 생략하고 핵심적인 개념 또는 기능을 간략하게 간추러 내는 것
객체
(object)가 무엇인지 찾아보았는데 객체
란 자신의 속성과 기능을 가지고 데이터라고 합니다.
그리고 이 객체를 공장처럼 찍어낼 수 있는 설계도 역할을 하는 것이 클래스
입니다.
쉽게 예를 들면 붕어빵틀 -> 클래스
붕어빵 -> 객체
라고 생각하면 쉬워요!
이렇게 붕어빵틀(클래스)에서 붕어빵(객체)를 만드는 과정을 클래스의 인스턴스화
라고 합니다.