본문 바로가기

IT/Java

객체 지향 프로그램

객체 지향 프로그래밍 개념

 

1. 추상화(Abstraction)

 - 여러가지 사물이나 개념에서 공통되는 특성이나 속성을 추출해서 파악하는 작용

 - 내가 만들고자 하는 객체의 특성이나 기능이 무엇인지 먼저 정리하는 것 

 

2. 상속(Ingeritance)

 - 상속 관계에 있는 두 클래스 중 한 클래스가 갖고 있는 속성과 메소드들은 다른 클래스에게 물려 주는 것을 의미

 - 부모클래스, 상위 클래스: 물려주는 역할

 - 자식클래스, 하위 클래스: 상속받는 역할

 - 먼저 상속은 클래스 간의 부모와 자식 관계를 만드는것이 가장 중요

  * 방법!

      - 자식 클래스 is a 부모클래스 = 자식 클래스는 부모클래스 이다

      ex) 소는 동물이다, 말은 동물이다 (0)        동물은 소다, 동물은 말이다(X)

 

3. 캡슐화(Encapsulation)

 - 서로 관련있는 기능이나 데이터를 한 곳으로 모아서 효율적으로 관리 및 사용할 수 있도록

 - 꼭 필요한 데이터나 기능만 외부에 노출시키는 것 = 정보은닉

   즉, 외부에서 클래스를 호출했을 경우, 클래스 내부에 있는 데이터가 어떻게 동작하는지 알 필요 없이 개발자가 원하는 결과값만 얻게 되는 것. =>> 데이터의 무결성, 정밀성, 정확성을 유지할 수 있음

 

4. 다형성(Polymorphism)

 - 다양한 형태의 성질을 가짐..

 예를들어서, valueOf()라는 메소드만 봐도 안에 매개변수로 int, long, boolean 많은 것들이 올 수 있어

 - 하나의 기능을 수행하지만 형태를 다양하게 가질 수 있는 기법