객체지향프로그래밍 객체지향 프로그래밍이란, 문제를 여러개의 객체 단위로 나누고 객체들끼리 유기적으로 상호작용하도록 프로그래밍하는 방법이다. 공통된 특성을 하나로 추상화하고 그것들을 한 군데에 모아서 캡슐화를 통해 객체를 만든다. 새로운 객체가 그 객체를 상속받아서 다형성을 통해 기능을 수정하거나 추가하여 재사용할 수 있도록 한다. 추상화란, 객체들의 공통적인 특성을 하나의 묶음으로 나타내는 것. 아이언맨이라는 구체적인 클래스보다 마블 유니버스라는 추상화된 인터페이스를 만들어두면 스파이더맨, 토르, 블랙팬서 등을 기존 코드의 수정 없이 만들어낼 수 있다. 캡슐화란, 관련된 기능과 특성을 클래스라는 캡슐에 넣어놓은 것으로 관련 있는 것들끼리는 높은 응집도를 가지고 다른 객체와는 의존도를 낮게, 접근제어자를 ..

1. 다형성이란? 부모-자식 상속 관계에 있는 클래스에서 상위 클래스가 동일한 메시지로 하위 클래스들을 서로 다르게 동작시키는 객체 지향 원리입니다. 다형성을 활용하면부모 클래스가 자식 클래스의 동작 방식을 알수 없어도 오버라이딩을 통해 자식 클래스를 접근할 수 있습니다. 그렇다면 어떻게 부모가 자식이 어떤 일을 하는 지 몰라도, 자식 멤버 함수를 호출시킬 수 있을 까요? 이유는 동적 바인딩 때문입니다. 동적바인딩이란, 메서드가 실행 시점에서 성격이 결정되는 바인딩인데요. 프로그램의 컴파일 시점에 부모 클래스는 자신의 멤버 함수밖에 접근할 수 없으나,실행 시점에 동적 바인딩이 일어나 부모클래스가 자식 클래스의 멤버함수를 접근하여 실행할 수 있습니다. 2. 다형성 장점 간편한 유지보수 개발자가 여러 객체를..

What I Learned 💡 객체지향 프로그래밍을 나 나름대로 구상해보았다. RPG 게임 세계를 만든다고 가정하고, 순차적 프로그래밍을 통해 구현한다고 하면 player가 가야할 길을 일일이 프로그래밍 해주어야 한다. A라는 지역에 가서 "아무개" 라는 NPC에게 말을 걸고 1번 이벤트를 진행해야 한다고 하면 순서대로 프로그래밍을 하고, "아무개"에게 말을 걸기 전에는 1번 이벤트가 진행되지 않도록 막는다던가 1번 이벤트가 진행된 후에 "아무개"에게 말을 거는 프로그래밍을 추가로 해주어야 한다. 게임이 방대해지고 이벤트가 많아지면 경우의 수가 기하급수적으로 늘어나기 때문에 프로그래밍 하는 게 부담스러워지고 놓치는 부분도 많아질 것이다. 💡 또 같은 게임을 절차적 프로그래밍을 통해 구현해보자. playe..
- Total
- Today
- Yesterday
- 알고리즘
- java
- 타입스크립트
- 자바트리
- SQL
- DP
- 자바dp
- 정렬
- 해시맵
- 스프링
- Comparator
- Nest
- JavaScript
- 프로그래머스
- 스프링부트
- 이분탐색
- Algorithm
- 백준
- 자바스크립트
- Spring
- 자바
- 형변환
- 자바bfs
- Queue
- CS
- dfs
- BFS
- JPA
- 리액트
- SQLD
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |