반응형
객체지향 프로그래밍(Object-Oriented Programmin, OOP)
- 현실 세계를 모델링하는 듯한 방식으로 소프트웨어를 설계 하는 개발 패러다임
- 객체지향 프로그래밍은 코드의 재사용성, 유지보수성, 모듈화 등의 장점으로 개발을 보다 효율적으로 도움.
객체지향 프로그래밍의 핵심 개념
1. 클래스(Class)
- 클래스는 객체를 생성하기 위한 템플릿 또는 설계도라고 표현할 수 있음
- 클래스는 데이터(속성, 필드)와 메서드를 정의하는 구조체
- 클래스는 주로 객체를 생성하는데 사용되며, 객체들 간에 공통된 특징을 나타나는데 활용됨.
2. 객체(Object)
- 클래스가 설계도라면 객체는 클래스라는 설계도에 의해 실제로 구현된 하나의 제품이라고 표현할 수 있음
- 클래스에 선언된 필드와 메서드로 정의된 개념
- 클래스의 인스턴스가 될 수 있으며, 클래스의 정의를 기반으로 생성됨.
- 객체와 인스턴스는 종종 같은 의미로써 사용되지만 엄격하게 구분을 하면 객체는 모든 인스턴스를 가리키는 명칭
3.상속(Inheritance)
- 상속은 클래스 간의 계층 구조를 형성하는 개념(조상과 자손의 관계)
- 하위 클래스(자손)가 상위 클래스(조상)의 특성(속성, 메서드)을 물려받을 수 있음.
- 상속을 통해 코드의 재사용성을 높이며, 새로운 클래스를 정의할 때 기존 클래스의 특성을 확장할 수 있는 개념
4. 다형성(Polymorphism)
- 다형성은 한가지 역할이 다양한 형태로 나타날 수 있는 능력을 나타냄
- 다형성은 코드의 재사용성과 확장성을 높이는 도구로 작용하며, 클래스와 메서드의 일관성을 강화하는 역할을 함.
5. 캡슐화(Encapulation)
- 캡슐화는 데이터와 해당 데이터를 다루는 메서드를 하나의 단위로 묶는 개념을 의미함.
- 외부에서 원치 않는 접근을 차단할 수 있도록 데이터를 은닉하며, 데이터의 일관성과 보안을 유지할 수 있음.
반응형
'Java' 카테고리의 다른 글
객체 지향 설계의 기본 :: 역할과 구현의 분리 (0) | 2023.09.25 |
---|---|
익명 객체(Anonymous Object) (0) | 2023.09.04 |
추상 클래스(abstract class) (0) | 2023.08.30 |
클래스와 객체, 변수 (0) | 2023.08.28 |
인스턴스와 변수 (0) | 2023.08.09 |