본문 바로가기

공부 자료/자바[JAVA]

[JAVA] 객체지향 프로그래밍(OOP) 기초, 클래스, 객체

객체지향 프로그래밍

: 객체들간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법

: 클래스 > 처리 및 데이터 부분을 객체로 생성해 사용

: JAVA, C++, C# 등 대표적 언어 존재


클래스와 객체 & 인스턴스

클래스

: 객체를 정의해 놓은 것

: 객체를 정의하고 만들어 내기 위한 설계도 혹은 틀로써 연관되어 있는 변수와 메서드의 집합

 

객체

: 클래스를 기반으로 생성된 실체로서 실제 프로그램에서는 사용되는 데이터를 의미

: 사물 또는 개념

: 객체의 속성과 기능에 따라 따름

 

[클래스 객체는 아래 링크 참고]

https://kcode-recording.tistory.com/79

 

[Java] About 클래스와 객체

[클래스] : 객체의 설계도 또는 틀 (Ex. 붕어빵을 만드는 붕어빵 틀) : 객체를 정의해 놓은 것으로 객체를 생성하는데 사용 : 데이터와 함수의 결합 (구조체 + 함수) * 구조체 : 서로 관련된 여러 데

kcode-recording.tistory.com

 

인스턴스

: 클래스를 기반으로 생성된 객체가 메모리에 할당되어 실제로 사용될 때를 말함

: 인스턴스는 객체에 포함

: 추상적인 개념과 구체적인 객체 사이에 초점을 맞출 때 사용되며, 클래스를 기반으로 소프트웨어 세계에 구현된 실체

 

객체 vs 인스턴스

: 객체는 타입으로 선언되었을 때

: 인스턴스는 객체가 메모리에 할당되어 실제로 사용될 때


객체지향 프로그래밍 특징

[장점]

1. 기본 프로그래밍언어와 크게 다르지 않음

: 기본 프로그래밍 언어에 몇가지 규칙을 추가

 

2. 코드의 재사용성이 높음

: 새로운 코드를 작성할 때 기존의 코드를 이용해 쉽게 작성 가능

: 상속을 통해 확장해서 사용 가능

 

4. 유지보수 용이

: 프로그램을 추가하거나 수정할 때 캡슐화를 통해 주변에 미치는 영향이 적어 유지보수가 쉽고 이로인해 매우 경제적

: 코드간의 관계를 맺어줌으로써 보다 적은 노력으로 코드 변경이 가능

 

5. 신뢰성 높은 프로그램 개발이 가능

: 제어자와 메서드를 이용해 데이터를 보호하고, 코드의 중복을 제거해 코드의 불일치로 인한 오류 방지가 가능

 

6. 협업에 용이

: 프로젝트를 독립적 객체로 분리 가능하여 여러 개발자와 협업 진행에 용이

 

7. 대형 프로젝트에 적합

: 클래스 단위로 모듈화하여 개발 가능하여 개발이 유연, 변경 용이성이 높음

: 분담의 효율을 높여주기 때문에 대형 프로젝트에 적합