
객체지향프로그래밍(OOP) 특징
2021. 2. 4. 21:47
DevLog/Etc...
객체(Object)란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른것과 식별 가능한 것을 말합니다. 객체는 속성과 동작으로 구성되어 있다고 보면되는데 자바에서는 이 속성과 동작을 각각 필드(field)와 메소드(method)라 부릅니다. 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링(Object Modeling)이라고 합니다. 객체 모델링은 현실 객체의 속성과 동작을 추려내서 소프트웨어 객체의 필드와 메소드로 정의하는 과정이라 할 수 있습니다. 객체지향프로그래밍의 특징 캡슐화(Encapsulation) 캡슐화란 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말합니다. 외부 객체는 객체 내부의 구조를 알지 못하며, 객체가..

C++ 다형성과 가상함수
2021. 1. 22. 22:39
DevLog/C & C++
다형성(Polymorphism)이란? 다형성(Polymorphism)은 OOP(Object Oriented Programming)의 개념을 설명할 때 추상화(Abstaction)과 더불어 가장 중요하게 등장하는 용어이다. 다형성은 여러 개의 서로 다른 객체가 동일한 기능을 서로 다른 방법으로 처리 할 수 있는 기능을 의미한다. 예를 들어 칼, 대포, 총 등의 무기들은 공통적으로 '공격'이라는 동일한 기능을 다르게 수행할 수 있다. 따라서 무기 객체에서 attack() 함수를 실질적으로 구현할 필요없이 추상 클래스(Abstract Class)로 구현하면 효과적으로 설계를 할 수 있다. 오버라이딩 문제 자식 클래스에서 멤버 함수를 재정의하여 사용하는 것은 일반적으로 잘 동작하나 포인터 변수로 객체에 접근할 ..