Java

[Java] 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)

공대생안씨 2024. 7. 8. 20:24

1. 객체 지향 프로그래밍

 

1-1. 절차 지향 프로그래밍

  • 절차를 지향 ⇒ 실행 순서를 중요하게 여김
  • 프로그램의 흐름을 순차적으로 따르며 처리하는 방식
  • 어떻게 를 중심으로 개발

 

1-2. 객체 지향 프로그래밍

  • 객체를 지향 ⇒ 객체를 중요하게 여김
  • 사물이나 사건등을 객체로 봄 ⇒ 객체들 간의 상호작용을 중심으로 프로그래밍
  • 무엇 을 중심으로 개발

 

1-3. 절차 지향 프로그래밍 vs 객체 지향 프로그래밍

 

📌 정리) 객체 지향 프로그래밍

클래스를 사용하는데 필요한 모든 속성(멤버변수)기능 (메서드) 이 하나의 클래스에 포함
=> 클래스를 사용하는 입장 : 클래스 내부에 어떤 속성(데이터)이 있는지 몰라도 됨
                                            단지 필요한 기능만 호출해서 사용만 하면 됨!

 

1-4. 객체 지향 프로그래밍의 4가지 기둥

1. 추상화 (Abstraction)

https://blogan99.tistory.com/118

 

[Java] 객체 지향 프로그래밍 - 추상화 (Abstraction)

1. 추상화클래스 간 공통 속성을 찾아내서 공통 조상을 만드는 것 1-1. 추상화 예시 - 시작public class Animal { public void sound() { System.out.println("동물 울음 소리"); }}public class Dog extends Animal { @Override publ

blogan99.tistory.com

 

2. 캡슐화 (Encapsulation)

https://blogan99.tistory.com/115

 

[Java] 객체 지향 프로그래밍 - 캡슐화 (Encapsulation)

1. 캡슐화객체 지향 프로그래밍의 중요한 개념 중 하나데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것데이터의 직접적인 변경 방지 / 제한 가능 📌

blogan99.tistory.com

 

3. 상속성 (Inheritance)

https://blogan99.tistory.com/116

 

[Java] 객체 지향 프로그래밍 - 상속 (Inheritance)

1. 상속기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해 줌“기존 클래스의 속성과 기능을 물려받는 것”extends 키워드 사용extends : → (”내가 상대방을 안다”) 라고 생각 가능

blogan99.tistory.com

 

4. 다형성 (Polymorphism)

https://blogan99.tistory.com/117

 

[Java] 객체 지향 프로그래밍 - 다형성 (Polymorphism)

1. 다형성“다양한 형태”, “여러 형태”한 객체가 여러 타입의 객체로 취급될 수 있는 능력다형성 이루는 핵심 이론다형적 참조메서드 오버라이딩 1-1. 다형적 참조📌 "부모는 자식 (자신 기

blogan99.tistory.com