jina.log
로그인
jina.log
로그인
OOP
Jina
·
2020년 7월 17일
팔로우
0
0
Today I Learned
목록 보기
20/21
OOP
OOP란 무엇일까?
객체 지향 프로그래밍
컴퓨터 프로그래밍 패러다임 중 하나로,
현실 세계를 프로그램 설계에 반영한다는 개념을 기반으로 함
프로그래밍에서 필요한 데이터를 추상화시켜 행위(Method)와 상태(Attribute)를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법
객체지향 프로그래밍 이란 캡슐화, 다형성, 상속 을 이용하여 코드 재사용을 증가시키고, 유지보수를 감소시키는 장점을 얻기 위해서 객체들을 연결 시켜 프로그래밍 하는 것 입니다
중요 키워드들
클래스(메서드 + 속성), 인스턴스(객체), 추상화, 캡슐화, 상속, 다형성
클래스와 인스턴스(객체)
클래스 : 문제 해결을 위해 필요한 데이터를 추상화하여 행위, 상태를 정의한 것
인스턴스(객체) : 클래스에서 정의한 것을 토대로 실제 메모리 상 할당한 것으로 실제 데이터
클래스는 일종의 설계도를 말하고, 클래스를 사용해 실제 생성한 물건이 객체!
추상화
불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 공통의 속성이나 기능을 묶어 이름을 붙이는 것
캡슐화
특정 문제를 해결하기 위한 기능과 특성을 '클래스'라는 '캡슐'에 분류해서 넣는 것
캡슐화 함으로써 클래스를 사용하는 쪽에서는 내부 로직을 굳이 파악할 필요가 없어짐
클래스 내의 변수나 메서드를 원하는 대로 감출 수 있기 때문에 보안도 함께 챙길 수 있음(정보 은닉)
상속
상위 클래스의 속성과 기능을 물려받아 사용할 수 있게하고 자식클래스는 물려받은 기능 중에서 고치고 싶은 부분을 수정하여 사용할 수 있음
다형성
하나의 변수명, 함수명이 상황에 따라 다른 의미로 해석될 수 있는 것으로, 오버라이딩, 오버로딩이 가능
오버라이딩 : 부모클래스의 메서드와 같은 이름, 매개변수를 재정의
오버로딩 : 같은 이름의 함수를 여러 개 정의하고, 매개변수의 타입과 개수를 다르게하여 각각 다르게 호출 할 수 있는 것
객체 지향의 장단점
장점
코드 재사용이 용이
기존의 클래스를 가져와서 상속을 통해 확장 사용이 가능
유지보수가 쉬움
수정해야할 부분이 클래스 내부의 변수 혹은 메서드로 존재하기 때문에 해당 부분만 수정
대형프로젝트에 적합
클래스 단위로 모듈화시켜 개발하기 때문에 업무 분담이 쉬움
단점
처리 속도가 상대적으로 느림
객체가 많으면 용량이 커질 수 있음
설계시 많은 시간과 노력이 필요
Ref
SooHyung Kim
Jina
팔로우
이전 포스트
Dijkstra Algorithm
다음 포스트
DB
0개의 댓글
댓글 작성