Java Study

객체지향 프로그래밍에 대해서...

Z00_HWAN_99 2024. 6. 21. 12:47
728x90
반응형

객체지향 프로그래밍의 개념

  • 프로그래밍에서 객체를 사용하는 것을 의미함.
  • 데이터와 메서드를 포함하는 '객체'개념에 기반한 프로그래밍.
  • 프로그램의 유연성을 향상하고 유지 및 관리의 가능성을 높임.
  • 데이터 및 데이터의 동작(메서드)을 단일 위치(객체)에 통합하여 프로그램 작동방식을 더 쉽게 이해할 수 있음.

객체지향 프로그래밍의 장점

  • 개발 속도 향상
  • 소프트웨어 개발의 생산성 향상
  • 소프트웨어 개발의 생산성 향상
  • 개발 비용 절감

객체지형 프로그래밍의 구성 요소

구성 요소 설명
클래스 같은 종류의 집단에 속한 속성과 행동을 정의한 틀.
목적을 같이 하는 데이터와 그 데이터를 처리하는 기능을 묶어놓은 단위.
객체 클래스의 인스턴스.
메모리에 올라가서 실체화된 데이터.
캡슐화 데이터와 행동을 하나의 단위로 묶는 것.
접근제한자를 사용하여 외부에서의 접근을 막아두고 자기 자신만 쓸 수 있게 하는 것.Ex)ㅇㅇ 내꺼임, 퉤퉤
상속 이미 존재하는 한 클래스의 멤버(변수, 메서드)를 다른 클래스에 물려주는 기법.
다형성 변수, 메서드 또는 객체가 여러 형태를 취하는 기법.
추상화 불필요한 내부 세부 사항을 숨기고 필수 사항을 표시하는 것을 의미.

 

캡슐화

  • 데이터(변수)와 행동(메서드)을 하나의 단위(클래스)로 묶는 기법.
  • 데이터를 수정하지 못하도록 안전하게 하기 위해 정보의 세부사항을 숨기고 객체의 데이터와 메서드를 보호하는 과정을 의미.
  • 데이터와 메서드를 보호하는 과정을 의미.
  • Ex) 캡슐 안에 담긴 약 -> 캡슐 속 안에 알약 성분이 안전하게 보관되는 것처럼 클래스의 변수와 메서드를 숨겨 안전하게 보호함.

캡슐화 규칙

  • 클래스의 변수는 private 접근제한자로 선언함.
  • 클래스의 변수에 접급할 수 있는 public 접근제한자로 선언한 Getter(), Setter() 메서드를 제공함.

상속

  • 이미 존재하는 한 클래스의 멤버(변수, 메서드)를 다른 클래스에 물려주는 기법.
  • 코드를 재사용하고 두 클래스 간에 부모-자식 관계를 설정하는 데 도움을 줌. ex) 부전자전
  • 부모 클래스(상위 클래스, 슈퍼 클래스, 기본 클래스) : 해당 클래스가 포함하고 있는 멤버를 상속하는 클래스
  • 자식 클래스(하위 클래스, 서브 클래스, 파생 클래스) : 부모 클래스의 멤버를 상속받는 클래스

다형성

  • 여러 형태를 취한다는 의미를 가짐.
  • 객체지향 프로그래밍에서 다형성은 변수, 메서드, 객체가 여러 형태를 휘하는 기법.
  • 상속에 의해 서로 관련된 하나 이상의 클래스 또는 객체가 있을 때 다형성이 발생.
    ex) 한 사람이 강아지를 키우는 집사이면서 직장인, 자녀, 부모이기도 하여 다양한 상황에서 다른 행동을 함.

다형성 유형

  • 메서드 오버로딩 : 메서드명이 같지만 메서드에 전달된 매개변수의 자료형 또는 개수가 다른 둘 이상의 메서드를 가짐.
  • 메서드 오버라이딩 : 상위 클래스의 메서드를 하위 클래스에서 재정의함.

추상화

  • 불필요한 세부 정보를 초함하지 않고 객체의 공통적인 속성과 행동만을 나타내는 것을 의미함.
  • 불필요한 세부 정보를 숨겨서 프로그래밍의 복잡성과 노력을 줄임.
    ex) 강아지를 키우는 사람이 강아지의 신체 구조를 자세히 알기 위해 수의사를 될 필요까지는 없음.

추상화를 하는 방법

  • 추상 클래스(abstract class)를 이용하는 방법
    • abstract 키워드로 선언하는 추상 클래스
      -> 추상 메서드와 구체적인 메서드를 포함할 수 있음.
    • 추상 클래스는 인스턴스화할 수 없으므로 추상 클래스의 객체를 만들 수 없음.
    • 추상 클래스를 사용하려면 다른 클래스에 상속하여 추상 메서드 자체를 구현해야 함.
  • 인터페이스(interface)를 이용하는 방법
    • interface 키워드를 사용하여 선언하는 인터페이스
      -> interface 키워드는 클래스가 구현해야 하는 동작을 지정하는 데 사용되는 추상자료형
    • 인터페이스를 사용하려면 다른 클래스에서 인터페이스를 구현해야 함.

 

https://github.com/bottomsUp-99

 

bottomsUp-99 - Overview

Backend Developer. bottomsUp-99 has 10 repositories available. Follow their code on GitHub.

github.com

 

728x90
반응형

'Java Study' 카테고리의 다른 글

상속(Inheritance)이란?  (0) 2024.06.28
참조 타입이란?  (2) 2024.06.21
메서드 오버로딩(Method Overloading)이란?  (0) 2024.06.20
메서드(method)란?  (0) 2024.06.20
Scanner VS BufferedReader 의 차이  (2) 2024.06.19