하루5분코딩"Object Oriented Programming(OOP)"

HwangSoonhwan·2020년 10월 28일
0

언어의 3가지 Type

  • Machine Languages

    • 0과 1로 이루어진 언어
    • 사람이 읽기 힘들다
  • Assembly Languages

    • 기계어와 일대일 대응이 되는 저급언어
    • cpu에 따라 지원하는 operation(조작)이 다르다.
    • cpu 특성에 따르다 보니 여러가지 환경에서 사용할 수 없다.
  • High-level Languages

    • 사람이 이해하기 쉽게 작성한 프로그래밍 언어이다
    • 컴파일러나 인터프리터(둘다 번역기의 일종)에 의해 저급 프로그래밍 언어로 번역되어 실행된다.
    • 여러가지 환경에서 사용이 가능하다.
    • 절차 지향적 언어와 객체 지향적 언어가 존재한다.
      • 절차 지향적 언어 - 모든것을 순차적으로 진행하는 것
      • 객체 지향적 언어 - 모든것을 객체로 사용하는 것

Object Oriented Programming(OOP) 즉, 객체지향프로그램의 4가지 특성

- 우선 4가지의 특성을 말하기전 Class 와 Object 에 대해서 알아보자

  • class : 같은 특성을 지닌 여러 객체를 총칭하는 집합의 개념이다. 쉽게 붕어빵 틀이라고 생각해보자.(추상적이다)
  • object : class가 구체적인 실체인 instance가 되었을때 객체라고 한다.

1. Encapsulation(캡슐화)(정보은닉)(재사용)

  • 특정 객체가 독립적으로 역할을 수행하기 위해 필요한 데이터와 기능을 하나로 묶은 것이다.
  • 변수와 함수같이 분산되어 있는 애들을 재활용 하기 힘들다. 하지만 캡슐화를 하면 재활용하기 쉬워진다.

2. Inheritance(상속)(재사용 + 확장)

  • 라이브러리를 통해서 남이 짜놓은 소스코드를 가져와 사용할수 있다. 하지만 의도에 맞게 수정하게 되면 다른 라이브러리가 되어 작동하지 않거나 불필요한 코드의 수정작업이 필요하다. 그렇기에 Inheritance 를 사용한다.
    ✓ 부모클래스의 속성과 기능을 그대로 가져와 사용할수 있고 필요에 따라 기능을 변경할경우 자식클래스의 해당 기능만 수정해주면 된다.

3. Abstrction(추상화)(모델링)

  • 추상화란 필요로 하는 정보만 표현해줌으로써 공통의 속성이나 기능을 묶어서 이름을 붙이는 것이다.
    ex) 전화기 - 우리는 번호를 누르고 말을하면되지만 그 안에서는 다양한 기능들이 실행되고있다.

4.Polymorphism(다형성)(사용편의)

  • 오버라이딩과 오버로딩이 여기에 해당된다. 오버라이딩은 부모클래스의 메소드와 같은 시그니처(이름,인자)로 메소드를 재정의 하는 것을 말하고 오버로딩은 메소드의 이름만 같고 시그니처가 다른 것을 말한다.
  • 클래스 중에 부모 자식 관계로 엮이지 않았다면 각각의 클래스 안에서 변수 명이나 메소드 명이 다른 클래스에 선언된 이름과 같아도 된다.
profile
👨‍🍳요리사의 "쿠킹" 스토리가 아닌 "코딩" 스토리💻

4개의 댓글

5분 컨셉이 좋네여

1개의 답글