ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA - 객체지향
    CS/Java 2021. 2. 17. 19:36

    객체지향


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

    • 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 
    • 장점: 코드 재사용이 용이하고, 유지보수가 쉽다. 클래스 단위로 모듈화하여 대형 프로젝트에 적합하다.
    • 단점: 처리속도가 상대적으로 느리고, 객체가 많으면 용량이 커질 수 있다. 설계시 많은 시간과 노력이 필요하다.

     

    객체지향 VS 절차지향

    • 절차지향 프로그래밍) 순차적인 처리가 중요하며 컴퓨터 작업 처리 방식과 비슷하여 속도가 빠르다. 데이터를 중심으로 함수를 구현한다. 
    • 객체지향 프로그래밍) 필요한 객체의 종류와 속성이 중요하며 메소드를 통해서만 객체에 접근할 수 있어 속도가 비교적 느리다. 기능을 중심으로 메소드를 구현한다.

     

    특징

    1. 추상화: 불필요한 정보 외 중요한 정보만 표현하여 공통의 속성과 기능을 묶어 일반화 하는것이다.
    2. 캡슐화: 결합도를 낮게 유지하기 위해 외부에서 접근할 필요가 없는 정보를 숨기고 객체간 의존성을 낮춘다.
    3. 상속: 클래스로부터 속성과 메서드를 물려받는 것을 말한다.
    4. 다형성: 하나의 변수명, 함수명이 상황에 따라 다르게 해석될 수 있다. 오버라이딩과 오버로딩이 있다.  

     

    5가지 SOLID 법칙

    1. 단일 책임 법칙(Single Responsibility Principle): 각 클래스는 목적을 하나만 가지고 그에 대한 책임을 가져야 한다.
    2. 개방 폐쇄 법칙(Open Colse Principle): 각 클래스는 클래스에 대한 수정을 폐쇄하고 확장에 대해 개방해야한다. 
    3. 리스코프 치환 법칙(Liskov Substitution Principle): 자식 클래스를 사용할 때 부모 클래스로 치환하여도 문제가 없어야 한다.
    4. 인터페이스 분리 법칙(Interface Segregation Principle): 클래스는 자신이 사용하지 않는 메소드에 대해 의존하지 않아야 한다.
    5. 의존성 역전 법칙(Dependency Inversion Principle): 변화하기 쉬운 것에 의존하기 보다는 변화하기 어려운 것에 의존해야 한다.

     

    reference

    velog.io/@hygoogi/%EA%B8%B0%EC%88%A0-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EB%AA%A8%EC%9D%8C#java

    velog.io/@hygoogi/%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91-%EC%A4%80%EB%B9%84%ED%95%98%EA%B8%B0#java

    jeong-pro.tistory.com/95

    brownbears.tistory.com/407

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

    JAVA - 오버로딩, 오버라이딩  (0) 2021.02.18
    JAVA - 인터페이스와 추상클래스  (0) 2021.02.18
    JAVA - GC  (0) 2021.02.18
    JAVA - JVM  (0) 2021.02.17
    JAVA - 접근 제어자  (0) 2021.02.17

    댓글

Designed by Tistory.