롸?

객체지향 프로그래밍 본문

프로그래밍/JAVA

객체지향 프로그래밍

허니버터새우깡 2020. 2. 4. 12:03

객체 지향 프로그래밍

객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말한다. 객체는 속성과 동작으로 구성되어 있고 이를 각각 필드(field)메소드(method)라고 부른다.



객체 지향 프로그래밍의 특징

  • 캡슐화(Encapsulation) 캡슐화란 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다. 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다. 이로 인해 외부의 잘못된 사용으로 객체가 손상되는 것을 막을 수 있다. 캡슐화는 접근 제한자를 사용하여 사용 범위를 제한한다.

  • 상속(Inheritance) 상속은 부모 역할의 상위 객체와 자식 역할의 하위 객체가 있어 상위 객체가 자기가 가지고 있는 필드와 메소드를 하위 객체에게 물려주어 사용할 수 있도록 해주는 것이다. 상위 객체를 재사용해서 하위 객체를 쉽고 빨리 설계할 수 있게 도와주고, 반복된 코드의 중복을 줄여준다. 또한 상속은 상위 객체의 수정으로 모든 하위 객체들의 수정 효과를 가져오므로 유지 보수 시간을 최소화시켜주기도 한다.

  • 다형성(Polymorphism) 다형성은 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다. 코드 측면에서 보면 다형성은 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다. 다형성의 효과로 객체는 부품화가 가능하다.



자바에서 객체와 클래스와 인스턴스

  • 객체는 설계도를 바탕으로 만들어지듯이 자바에서 설계도는 클래스(class)이다. 클래스에는 개체를 생성하기 위한 필드와 메소드가 정의되어있다. 크랠스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 하고 클래스로부터 객체를 만드는 과정을 인스턴스화라고 한다.

제작자 -> 설계도 -> 객체
개발자 -> 클래스 -> 인스턴스

 

'프로그래밍 > JAVA' 카테고리의 다른 글

제네릭(Generic)  (0) 2020.02.04
싱글톤(Singleton)  (0) 2020.02.04
static과 JVM 메모리 구조  (0) 2020.02.04
추상(abstract)  (0) 2020.02.04
오버로딩(Overloading)과 오버라이딩(Overriding)  (0) 2020.02.04
Comments