티스토리 뷰

반응형

OOP (Object-Oriented Programming)

객체 지향적인 프로그래밍. 즉, C언어같은 절차 지향적인 프로그래밍이 아닌 객체의 관점에서 프로그래밍을 한다는 것이다.

OOP는 객체를 기준으로 코드를 나누어 구현한다. 자바의 경우 그 구성 부분 단위가 클래스이다. 자세히 말하자면 클래스는 설계도고 직접일을하는 구현체는 인스턴스다.

 

  • OOP는 객체의 관점에서 프로그래밍 하는 것을 의미한다.
  • C언어는 절차 지향 프로그래밍인데, 절차 지향 프로그래밍은 프로세스가 함수 단위로 순서대로 진행되는 것을 말한다.
  • OOP는 절차지향에 비해서 사람의 사고방식과 더 가깝다.
  • OOP는 객체들의 유기적인 관계를 통해서 프로세스가 진행된다.
  • 애플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍 하는 것을 말한다.

OOP 특징

캡슐화 (Encapsulation)

  • 하나의 객체에 대해 그 객체가 특정한 목적을 위한 필요한 변수나 메소드를 하나로 묶는 것을 의미한다.

  • 따라서 클래스를 우리가 만들 떄 훗날 이 클래스에서 만들어진 객체가 특정한 목적을 잘 수행할 수 있도록 사용해야할 변수와 그 변수를 가지고 특정한 액션 즉 메서드를 관련성 있게 클래스에 구성해야한다.

  • 정보은닉

유저 정보를 가지고 있는 User라는 객체에서 유저의 정보가 public으로 선언되어 있다면, 누구든 접근해서 유저 정보를 변경할 수 있다. 그렇기 때문에 private로 해서 데이터를 보호해서 접근을 제한해야한다.

이렇게 보호된 변수는 getter나 setter 등의 메서드를 통해서만 간접적으로 접근이 가능하도록 하는 것이 캡슐화의 중요한 목적이다.

추상화 (Abstraction)

  • 추상화는 목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 개념

Q .  Abstract vs implements ? (링크 달것)

다형성(Polymorphism)

  • 다형성은 상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해준다. 즉, 다형성은 형태가 같은데 다른 기능을 하는 것을 의미

 Q. 오버라이딩 and 오버로딩(링크)

 

상속성, 재사용(Inheritance)

  • 상속이란 기존 상위클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있게 도와주는 개념이다.

  • 기존 클래스에 기능을 가져와 재사용할 수 있으면서도 동시에 새롭게 만든 클래스에 새로운 기능을 추가할 수 있게 만들어 준다.

  • 자바에서는 상속대상은 하나만 지정 가능하다.
    • (단일 상속) -> 단일 상속의 문제점을 보완하기 위해 인터페이스(다중 상속)가 존재
  • 부모 클래스가 자식 클래스에게 맞게 설계되어 있지 않은경우에는 상속된 일부 메속드를 자식 클래스에서 다시 수정에서 사용하야한다. 자바는 이런경우를 위해 메소드 오버라이딩(@Override) 기능을 제공한다.
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함