본문으로 바로가기

[자바] 객체지향 프로그래밍

category 자바 2024. 1. 22. 17:30

 

1. 객체지향 프로그래밍이란? 

프로그래밍이 고도화되면서 어떤 방식으로 프로그래밍 할 것인지 방법론 적인 것에 대한 개념이 생겼다.

이전에는 만들고자하는 절차에 따라 단순하게 프로그래밍 했다가 더 좋은 유지보수를 위해 객체 지향 프로그램이 등장하게 된것이다. 

 

절차지향 프로그래밍 

  • 일련의 동작(모듈, 함수)를 순서에 맞게 단계적으로 시행
  • 규모가 커지고 기능이 복잡해지면서 유지보수 어려움 한계가 생김

객체지향 프로그래밍

  • 클래스라는 개념을 도입 : 하나의 작업의 단위를 클래스로 두고 사용
  • 클래스를 생성하고 클래스로부터 객체를 만들어 객체간 상호작용을 이용하여 문제를 해결하는 프로그래밍 방식
  • 객체는 필드(데이터)와 메서드(코드)를 하나로 묶어서 표현한다. 

객체

  • 속성 : 객체의 특성을 표현하는 정적인 성질 / 필드  
  • 행동 : 객체 내부의 일처리 또는 객체들간의 영향을 주고받는 동적인 일 처리 / 메소드

 

클래스 vs 객체 

클래스는 객체를 만들기 위한 설계도, 객체는 클래스의 구체적인 하나의 실례 (instance)이다. 

 

2. 객체지향언어(OOP)의 4가지 특징

 

1️⃣ 추상화

실세계의 객체에서 필요한 부분만 간결하고 이해하기 쉬운 클래스로 만드는 작업.

속성과 행동으로 추상화를 실현할 수 있다.

 

ex) 계좌를 추상화 한다면?

속성: 계좌번호, 비밀번호, 이름, 잔액)

행동: 입금, 출금

 

2️⃣ 캡슐화

객체와 객체간의 의사소통을 위해 필요한 정보만 노출하고 실제 내부 구현은 숨긴다. 

=> 정보은닉 

 

3️⃣ 상속⭐️(핵심)

클래스마다 공통된 특성을 반복적으로 기술하지 않고 상위 클래스를 상속시켜 중복을 줄여 재사용성을 높인다.

사람(공통 코드가 있는 상위 클래스)

⬇️

남자(하위클래스)        여자(하위클래스)

 

4️⃣ 다형성

 

하나의 인터페이스나 클래스를 여러가지 방식으로 동작하게 하는 것

ex) 오버로딩, 오버라이딩 

이전에 정리한 다형성 관련 개념이다. 

https://velog.io/@asonghub/포스코x코딩온-웹개발자-과정-JAVA-추상클래스-인터페이스


파송송 개발탁
블로그 이미지 파송송송 님의 블로그
VISITOR 오늘 / 전체