객체지향 프로그래밍(Object Oriented Programming)이란
문제를 여러 개의 객체 단위로 나눠 작업하는 방식을 말한다.
객체지향 프로그래밍의 가장 큰 특징은 클래스를 이용해 연관 있는 처리부분(함수)과 데이터 부분(변수)를 하나로 묶어 객체(인스턴스)를 생성해 사용한다는 점이다.
그리고 객체지향 프로그래밍에서는 프로젝트를 독립적인 객체 단위로 분리해서 작업할 수 있기 때문에 여러 개발자와 협업해 규모가 큰 프로젝트를 진행할 수 있으며 유지보수측면도 뛰어나다는 장점이 있다.
장점
- 코드 재사용이 용이하다
다른 사람이 만들 클래스를 가져와서 사용할 수 있고 상속을 통해 확장해서 사용할 수 있다.
- 유지보수가 쉬움
절차지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는
수정해야할 부분이 클래스 내부에 멤버 변수 혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다.
- 신회성이 높은 프로그래밍을 가능하게 한다.
제어자와메서드를 이요해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오작동을 방지할 수 있다.
단점
- 처리속도가 상대적으로 느리다.
- 객체가 많으면 용량이 커질 수 있다.
- 설계시 절차지향에 비해 많은 시간이 필요하다.
객체 지향 프로그래밍의 키워드 5가지
1) 클래스 + 인스턴스(객체)
- 어떠한 객체의 상태를 나타내는 변수와 행동을 나타내는 메소드의 집합
- 객체를 정의하는 틀, 설계도
- 인스턴스(객체)란 클래스에서 정의한 것을 토대로 실제 메모리상에 할당 된 것이다.
- 클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스화 라고 한다.
2) 추상화
- 불필요한 세부 정보는 숨기고 객체의 관련 속성 만 '표시'한다.
- 즉, 공통의 속성이나 기능을 묶어 이름을 붙이는 것.
3) 캡슐화
- 변수와 함수를 하나로 묶는 것을 뜻한다.
- 코드를 재수정 없이 재활용하고 접근제어자를 통한 정보를 은닉하는 것
- 캡슐화를 통해 관련된 기능과 특성을 한 곳에 모으고 분류하기 때문에 재활용이 원활해지는 효과가 있다.
4) 상속
- 조상 클래스의 속성과 기능을 그대로 물려받아 사용할 수 있고, 기능의 일부분을 변경해야 할 경우 상속받은 자식 클래스에서 해당 기능만 다시 수정하여 사용할 수 있다.
5) 다형성
- 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 한 것이다.
- 오버라이딩 : 조상 클래스로부터 상속받은 메소드의 내용을 변경하는 것을 오버라이딩이라고 한다.
- 오버로딩 : 같은 이름의 함수를 여러개 정의하고 매개변수의 타입과 개수를 다르게 하여 매개변수에 따라 다르게 호출할 수 있도록 하는 것.
참고자료
https://webclub.tistory.com/155 [Web Club]
https://jeong-pro.tistory.com/95
'개발일지 > Java(자바)' 카테고리의 다른 글
원시타입 vs 참조타입 (자바) (0) | 2022.05.07 |
---|---|
String vs StringBuffer vs StringBuilder (0) | 2022.04.25 |
객체지향 프로그래밍이란? (0) | 2022.04.17 |
Java - 멤버변수, 지역변수, 클래스변수, 인스턴스변수 (0) | 2022.04.07 |
JVM(Java Vertual Machine) (0) | 2022.01.23 |