객체지향 프로그래밍(OOP)이란?
프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고
그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
코드 재사용이 용이
유지보수가 쉬움
처리 속도가 상대적으로 느림
객체가 많으면 용량이 커질 수 있음
설계시 많은 시간과 노력이 필요
클래스 : 클래스는 객체를 정의하는 틀 or 설계도와 같은 의미로 사용
인스턴스 : 클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것.
한줄요약 : 공통의 속성이나 기능을 묶어 이름을 붙이는 것.
객체지향 프로그래밍에서 기능과 특성의 모음을 클래스 라는 캡슐에 분류해서 넣는 것이 캡슐화
부모 클래스의 속성과 기능을 그대로 이어받아 사용할 수도 있고
기능의 일부분을 변경해야 할 경우 상속받은 자식클래스에서 해당 기능만 다시 수정(정의)하여
사용할 수 있게 하는 것.
오버라이딩 : 상위 클래스의 메소드를 재정의 하는 것. 런타임 다형성
오버로딩 : 같은 클래스 내에서 동일한 메소드 이름을 가지지만, 매개변수 타입, 개수가 다르게 구현할 수 있는 것.