TIL

TIL 241011

muerha 2024. 10. 11. 21:05

 

 

Java 문법 종합반 3주차

 


 

 

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

프로그램의 일부분에 해당하는 작은 부품, 즉 객체를 먼저 만들고 이렇게 만들어진 여러 객체들을 조립해서 하나의 완성된 프로그램을 만드는 프로그래밍 방법론

 

 

객체

모든 실재하는 대상. 식별이 가능한 것

ex) 자동차, 도서관, 계산기 등

 

객체는 속성행위로 구성되어있는데, 예를들어 자동차의 속성과 행위를 표현해보면

회사, 모델, 색상, 가격, 속도 등의 속성을 가질 수 있고
가속, 브레이크, 기어변속, 조명, 경적등의 행위를 가질 수 있다.

 

자바에서는 이러한 속성과 행위를 필드메서드로 정의하여 구현할 수 있다.

 

현실 세계에 있는 객체를 소프트웨어의 객체로 설계하는 것을 객체 모델링이라고 부른다.

 

 

 

객체지향 프로그래밍의 특징

캡슐화상속다형성추상화

 

 

1) 캡슐화

 

속성(필드)와 행위(메서드)를 하나로 묶어 객체로 만든 후 실제 내부 구현 내용은 외부에서 알 수 없게 감추는 것

 

외부 객체에서는 캡슐화된 객체의 내부 구조를 알 수 없기 때문에 노출시켜 준 필드 혹은 메서드를 통해 접근

 

외부로부터 클래스에 정의된 속성과 기능들을 보호하고, 필요한부분만 외부로 노출될 수 있도록 하여 각 객체 고유의 독립성과 책임 영역을 안전하게 지키고자 하는 목적

 

캡슐화된 객체의 필드와 메서드를 노출 시킬지 감출 지 결정하기 위해 접근 제어자를 사용

 

 

2) 상속

 

기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소

 

부모 객체는 가지고 있는 필드와 메서드를 자식 객체에 물려주어 자식 객체가 이를 사용할 수 있도록 만들어줌

 

이유

  • 각각의 객체들을 상속 관계로 묶음으로써 객체 간의 구조를 파악하기 쉽다.
  • 필드와 메서드를 변경하는 경우 부모 객체에 있는 것만 수정하게 되면 자식 객체 전부 반영이 되기 때문에 일관성을
    유지하기 좋다.
  • 코드의 중복이 줄어들며 코드의 재사용성이 증가된다.

 

3) 다형성

 

객체가 연산을 수행할 때 하나의 행위에 대해 각 객체가 가지고 있는 고유한 특성에 따라 다른 여러가지 형태로 재구성
되는 것

 

어떤 객체의 속성이나 기능이 그 맥락에 따라 다른 역할을 수행할수 있는 객체 지향의 특성

 

다형성을 구현하는 대표적인 방법으로는 오버로딩오버라이딩이 있다.

 

4) 추상화

 

객체의 공통적인 속성과 기능을 추출하여 정의하는 것

 

추상화를 구현할 수 있는 문법 요소

▶ 추상 클래스(abstract class) 인터페이스(interface)

 

인터페이스

“서로 다른 두 시스템, 장치, 소프트웨어 따위를 서로 이어주는 부분 또는 그런 접속 장치”

 

인터페이스에는 추상 메서드나 상수를 통해서 어떤 객체가 수행해야 하는 핵심적인 역할만을 규정해두고, 실제적인 구현은 해당 인터페이스를 구현하는 각각의 객체들에서 하도록 프로그램을 설계

 

 

 

클래스

 

객체를 생성하기 위한 설계도 혹은 틀. 연관되어 있는 변수와 메서드의 집합.

 

클래스의 구성 멤버 ▶ 필드, 생성자, 메서드

 

클래스를 만들기 위한 4가지 STEP

  1. 만들려고 하는 설계도를 선언(클래스 선언)
  2. 객체가 가지고 있어야할 속성(필드)을 정의
  3. 객체를 생성하는 방식을 정의(생성자)
  4. 객체가 가지고 있어야할 행위(메서드)를 정의

 

인스턴스?

 

클래스에 의해 생성된 실체

 

클래스의 정의를 바탕으로 실제 메모리 상에 할당된 객체를 의미한다.

클래스는 추상적인 개념이며 실제 작업을 수행할 수 없다.  인스턴스는 이러한 클래스의 정의를 바탕으로 생성되어 실제 프로그램에서 작업을 수행하는 주체가 된다.

 

예를 들어, '사람' 클래스가 있다면, 이 클래스는 이름, 나이, 성별과 같은 속성과 걷다, 먹다, 자다와 같은 메소드를 정의할 수 있다. 하지만, '사람' 클래스 자체로는 실제 작업을 수행할 수 없다. '사람' 클래스를 바탕으로 생성된 '홍길동' 인스턴스는 실제로 이름, 나이, 성별 속성을 가지고 걷고, 먹고, 자는 행동을 할 수 있다.

 

 

 

 

 

'TIL' 카테고리의 다른 글

TIL 241015  (2) 2024.10.15
TIL 241014  (0) 2024.10.14
TIL 241010  (0) 2024.10.10
TIL 241008  (0) 2024.10.08
TIL 241007  (0) 2024.10.07