객체 지향 프로그래밍 개념
1. 추상화(Abstraction)
- 여러가지 사물이나 개념에서 공통되는 특성이나 속성을 추출해서 파악하는 작용
- 내가 만들고자 하는 객체의 특성이나 기능이 무엇인지 먼저 정리하는 것
2. 상속(Ingeritance)
- 상속 관계에 있는 두 클래스 중 한 클래스가 갖고 있는 속성과 메소드들은 다른 클래스에게 물려 주는 것을 의미
- 부모클래스, 상위 클래스: 물려주는 역할
- 자식클래스, 하위 클래스: 상속받는 역할
- 먼저 상속은 클래스 간의 부모와 자식 관계를 만드는것이 가장 중요
* 방법!
- 자식 클래스 is a 부모클래스 = 자식 클래스는 부모클래스 이다
ex) 소는 동물이다, 말은 동물이다 (0) 동물은 소다, 동물은 말이다(X)
3. 캡슐화(Encapsulation)
- 서로 관련있는 기능이나 데이터를 한 곳으로 모아서 효율적으로 관리 및 사용할 수 있도록
- 꼭 필요한 데이터나 기능만 외부에 노출시키는 것 = 정보은닉
즉, 외부에서 클래스를 호출했을 경우, 클래스 내부에 있는 데이터가 어떻게 동작하는지 알 필요 없이 개발자가 원하는 결과값만 얻게 되는 것. =>> 데이터의 무결성, 정밀성, 정확성을 유지할 수 있음
4. 다형성(Polymorphism)
- 다양한 형태의 성질을 가짐..
예를들어서, valueOf()라는 메소드만 봐도 안에 매개변수로 int, long, boolean 많은 것들이 올 수 있어
- 하나의 기능을 수행하지만 형태를 다양하게 가질 수 있는 기법