Open kgh2120 opened 4 months ago
객체 지향 프로그래밍은 상속, 캡슐화, 다형성, 추상화의 특징을 가지고 있는 소프트웨어 설계 방식입니다.
1. 자세히 설명하고 예시를 좀 설명해주세요. - 상속은 기존 클래스의 속성과 메소드를 하위 클래스에서 재사용할 수 있도록 도와주는 것 입니다. 예를 들면 부모 클래스에 eat()이라는 메소드가 존재한다면 자식 클래스에서 해당 부모 클래스를 확장 받으면 eat()메소드를 작성하지 않아도 사용이 가능합니다. - Interface나 부모 클래스를 상속 받아 다양한 자식 클래스의 객체가 만들어지는 것이 다형성입니다. 메소드 Overriding과 Overloading이 존재하며 동일한 메소드를 재정의 하거나 리턴타입, 매개변수를 변경하여 재사용할 수 있습니다. 예를 들어, eat 메소드가 밥을 먹는 것에 한정되어있었다면 다형성을 이용하면 고기를 먹을수도, 술을 마실수도 있게 확장할 수 있습니다. - 객체의 데이터에 직접적인 접근을 할 수 없고 메소드를 통해서만 접근 가능하도록 설정하는 것입니다. 이는 데이터의 무결성을 보장하고 내부 로직을 숨길 수 있습니다. 예를 들어, 접근지정자(접근제한자)를 사용하여 캡슐화를 진행합니다. private 접근지정자가 붙는다면 해당 데이터에는 어떤 클래스에서도 직접적인 접근이 불가능합니다. - 복잡한 내부 구현은 숨겨서 제공하는 방법입니다. Interface 혹은 abstract class를 이용하여 구현합니다. 예를 들어, Interface로 creature라는 것을 만들어놓는다면 해당 인터페이스를 상속 받아 creature의 특징을 가져가면서 사람의 특징을 가지는 Person class를 만드는 방식이 있습니다. 이렇게 하면 구체적인 구현은 각 클래스에서 처리해 내부 구현을 숨길 수 있습니다.
OOP는 Object-Oriented Programming의 약자로, 객체 중심의 개발 방법론을 말합니다. 비즈니스 로직에 사용 될 사물들을 추상화하여 공통 속성들을 뽑아내고, 이를 클래스로 만들어 개발함으로써 다형성, 캡슐화등 여러 장점을 얻을 수 있습니다.
캡슐화 : 클래스의 필드와 메서드를 한데 묶어 데이터를 보호하고, 외부에서 직접적으로 접근하는 것을 막습니다. 상속 : 클래스들의 공통 속성이나 행동을 모아 부모클래스를 만들고, 자식클래스에서 이를 상속 받아 사용함으로써 코드의 재사용성을 높입니다. 다형성 : 인터페이스, 오버라이드와 같은 기능들을 이용해 한 메소드나 인터페이스가 여러 방식으로 사용되게 함으로써 코드의 재사용성을 높입니다. 추상화 : 클래스를 사용하는 사람들은 클래스 내부의 동작을 알지 못하게 구현합니다. 이렇게 함으로써 조금 더 쉽게 기능을 사용할 수 있습니다.
문제
예상 꼬리 질문
- (4개 중 1개) OOO에 대해서 자세히 설명해주세요. - 답변한 것에 대한 예시를 좀 설명해주세요.들어가야 할 키워드 정리