본문 바로가기
Web Programing/JAVA

JAVA 객체 지향 프로그래밍 추상화 캡슐화 상속 다형성

by 기록하는 초보 2024. 1. 31.
반응형

JAVA를 처음 공부하면서 객체 지향 프로그래밍이라는 단어와 추상화, 캡슐화, 상속, 다형성이 등장하는데 각각 어떤 것인지 알아보겠습니다.

 

객체 지향 프로그래밍

JAVA는 객체 지향 프로그래밍 언어로서, 실제 세계의 객체들의 컴퓨터 프로그램 내에서 구현할 수 있도록 지원합니다. 객체 지향 프로그래밍(OOP, Object-Oriented Progrmming)은 데이터와 해당 데이터를 처리하는 메소드들을 하나의 단위인 객체로 묶어서 관리하는 프로그래밍 패러다임을 의미합니다. 객체 지향의 주요 개념은 추상화, 캡슐화, 상속, 다형성 등을 포함합니다.

 

추상화(Abstraction)

객체의 공통적인 속성과 기능을 도출하여 클래스로 정의하는 과정을 말합니다. 추상화를 통해 복잡한 현실 세계를 단순화시켜 모델링하게 됩니다.

캡슐화(Encapsulation)

데이터(필드)와 데이터를 처리하는 메서드를 묶고, 그중 일부를 외부에서 접근하지 못하도록 숨김으로써, 객체의 상세 구현을 외부로부터 감추는 것입니다. 이로써 객체의 완전성을 보장하며, 외부의 간섭을 제한합니다.

상속(Inheritance)

기존 클래스의 속성(필드)과 기능(메서드)을 다른 클래스가 물려받는 것을 말합니다. 이러한 상속을 통해 기존 코드의 재사용과 확장이 가능해지며, 중복을 최소화할  수 있습니다.

다형성(Polymorphism)

하나의 참조 변수로 여러 타입의 객체를 참조하거나, 같은 이름의 메서드가 다양한 방식으로 동작하는 것을 말합니다. 오버로딩(Overloading)과 오버라이딩(Overrridinmg)은 다형성을 구현하는 구체적인 방법론입니다.

 

객체 지향 프로그래밍의 장점

유지보수성

객체 지향 프로그래밍은 코드의 수정과 확장을 용이하게 합니다. 캡슐화를 통해 객체 내부의 변경이 외부에 영향을 주지 않게 하고, 상속과 다형성을 통해 기존 코드를 쉽게 확장할 수 있습니다.

재사용성

일반화된 클래스를 설계함으로써, 한 번 만든 클래스를 다양한 프로그램에서 재사용할 수 있습니다. 이는 개발 시간과 비용을 절감할 수 있으며, 소프트웨어의 품질을 향상하는데 기여합니다.

 

Java의 객체 지향 프로그래밍은 효과적으로 모델링하고 코드의 재사용성과 유지보수성을 향상하는 강력한 도구입니다. 최근에는 함수형 프로그래밍과 같은 다른 패러다임과 결합하여 더욱 강력하고 유연한 프로그램을 개발하는 추세입니다.

반응형