not bad 한 개발

Java - 객체지향 프로그래밍 본문

Java/Java class

Java - 객체지향 프로그래밍

leebean 2022. 3. 20. 20:46

(이 글의 내용은 YouTube의 남궁성의 정석코딩 채널의 강의를 듣고 배운 내용을 포스트 하겠습니다.)

https://youtube.com/playlist?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 

 

자바의 정석 기초편(2020최신)

최고의 자바강좌를 무료로 들을 수 있습니다. 어떤 유료강좌보다도 낫습니다.

www.youtube.com

 

 객체지향 언어 

80년도 초 소프트웨어 업계는 빠르게 변화하는 세상에 쫓아가지 못하고 있었습니다, 하지만 해결책으로 여러 가지 방법을 찾다가 객체지향을 도입하게 되었습니다, 기존의 절차적 프로그래밍이 아닌 객체지향 프로그래밍으로 바꾸게 되니 코드의 재사용성은 높아지고 유지보수가 용이 해지며 중복 코드는 제거됨으로 오늘날까지 많이 쓰이고 있는 방식 중에 하나로 자리 잡게 되었습니다.

객체지향 언어 = 프로그래밍 언어 + 객체지향 개념

객체지향 프로그래밍(OOP : Object Oriented Programming) : 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.

 

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

  • 장점
    1. 상속을 통해 코드의 재사용성이 증가합니다.
    2. 생산성을 향상합니다.
    3. 생각하고 있는 것을 자연스럽게 구현이 가능합니다.
    4. 캡슐화를 통해 주변 영향이 적기 때문에 유지보수가 쉬워집니다.
  • 단점
    1. 설계단계부터 많은 시간이 소모됩니다.
    2. 실행 속도가 느립니다, Java 같은 경우에는 JVM위에서 프로그램이 실행되기 때문에 속도가 느립니다.
    3. 코딩 난이도가 상승합니다.

 

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

  1. 캡슐화 (Encapsulation) : 데이터와 코드의 형태를 외부로부터 알 수 없게 하고, 데이터의 구조와 역할, 기능을 하나의 캡슐 형태로 만드는 방법입니다.
  2. 상속 (Inheritance) : 기존 상위 클래스에 기능을 가져와 재사용할 수 있으면서도 동시에 새로운 하위 클래스에 새로운 기능도 추가할 수 있는 것입니다.
  3. 추상화 (Abstraction) : 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 말합니다.
  4. 다형성 (Polymorphism) : 한 객체가 상속을 통해 기능을 확장하거나 변경하여 다른 여러 형태(객체)로 재구성되는 것을 말합니다. 

정리하지면 객체지향 프로그래밍은 어떤 대상을 추상화하여 공통점을 찾고, 그것을 캡슐화해 한 군데에 모아 객체를 만들고 새로운 객체가 상속받아 재사용이 가능하게 만들어줍니다, 상속받은 객체는 다형성을 통해 기능을 수정 또는 추가하여 재사용을 할 수 있습니다.

 

 참고사이트 

OOP(객체지향 프로그래밍)

'Java > Java class' 카테고리의 다른 글

Java - 객체 생성과 사용  (0) 2022.03.29
Java - 한 파일에 여러 클래스 작성  (0) 2022.03.29
Java - 클래스와 객체  (0) 2022.03.29
Java - JDK 설치 및 Java파일 실행  (0) 2022.03.10
Java - 자바의 기초 및 특징  (0) 2022.03.09
Comments