파이썬 객체 지향 프로그래밍의 핵심: 캡슐화, 상속, 다형성 및 속성 관리
파이썬에서 클래스와 객체를 다루는 방식은 C++이나 Java와 같은 전통적인 객체 지향 언어와는 다른 철학을 따릅니다. 이 글에서는 데이터 캡슐화, 생명주기 관리, 상속 구조, 그리고 클래스 속성과 인스턴스 속성의 차이점을 중심으로 파이썬 OOP의 실무적 적용 방법을 살펴봅니다.
데이터 캡슐화와 접근 제어
객체의 내부 상태를 보호하기 위해 직접적인 속성 수정을 제 ...
9월 26일 12:52에 게시됨
OOP 세 가지 특성: 상속과 추상화, 속성 검색 순서, 파생과 오버라이딩, 조상 클래스 접근, 초기화 메서드, super 호출 필수, 조합, 다중 상속
OOP의 세 가지 핵심 개념
객체 지향 프로그래밍의 핵심 요소는 다음과 같습니다:
캡슐화
상속
다형성
상속의 개념
상속은 클래스 간 관계를 정의하는 메커니즘입니다. 예를 들어, "개"와 "고양이"가 "동물"이라는 공통 특성을 가질 때, 이 관계를 코드로 표현할 수 있습니다.
class Animal:
def breathe(self):
print("호흡 중...")
class Dog(Anim ...
9월 12일 21:57에 게시됨
Java 다형성 완벽 가이드
Java 다형성
1. 다형성이란?
동일한 객체가 상황에 따라 다른 형태로 나타나는 것을 의미합니다. 예를 들어, 사람은 직관적으로는 한 사람이지만, 환경에 따라 개발자, 학생, 자녀 등 다양한 역할을 수행할 수 있습니다.
다형성이成立하기 위한 조건:
상속 또는 구현 관계가 존재해야 합니다. 메서드 오버라이딩이 이루어져야 하며, 부모 클래스 레퍼런스가 자식 클래스 객 ...
8월 30일 10:26에 게시됨
파이썬 dataclass 심화 활용 가이드
파이썬 3.7부터 표준 라이브러리에 추가된 dataclasses 모듈은 데이터를 저장하는 클래스(데이터 컨테이너)를 작성할 때 발생하는 보일러플레이트 코드(boilerplate code)를 크게 줄여줍니다. 이는 기본적으로 값을 가진 가변적인 namedtuple와 유사하지만, 타입 힌트(type hinting) 지원, 기본값 설정, 가변성(mutability) 제어 등 더 강력한 기능을 제공합니다.
기본 클 ...
8월 28일 08:29에 게시됨
JavaScript 객체지향 프로그래밍 기초
JavaScript의 본질
JavaScript는 다음과 같은 특징을 가진 프로그래밍 언어입니다:
객체 기반
JavaScript는 다양한 내장 객체를 제공합니다【String, Date, Array 등】
개발자가 직접 커스텀 객체를 생성할 수도 있습니다
이벤트驱动
사용자가 특정 동작을 수행할 때【클릭, 마우스 이동】, JavaScript는 이러한 이벤트를 감지하는 메커니즘을 제공합니다. 이벤트가 발생 ...
8월 28일 02:41에 게시됨
Lua 프로그래밍 - 반복자와 메타테이블, 객체지향 프로그래밍
반복자와 제네릭 for
반복자와 클로저
먼저 간단한 반복자를 구현해보겠습니다. 반복자는 내부 상태를 유지하는 클로저를 통해 구현됩니다.
-- 팩토리 함수: 테이블을 받아 반복자를 반환
local function factory(tbl)
local index = 0
return function()
index = index + 1
return tbl[index]
end
end
data = {10, 20, 30}
iterator = fa ...
8월 8일 21:48에 게시됨
Java에서의 열거형 사용법
열거형란?
Java에서 열거형(enumeration)은 일련의 상수를 표현하기 위해 사용되는 특수한 유형입니다. 열거형은 코드를 더 명확하게 만들고 유지보수하기 쉽게 합니다. 열거형은 단순한 상수뿐만 아니라 필드, 메서드, 생성자도 포함할 수 있습니다.
팁: 열거형은 클래스의 일종입니다.
열거형 정의
간단한 열거형 예제:
package CoreJava;
public enum Day {
MONDAY ...
8월 4일 00:26에 게시됨
Java 클래스 설계: 메서드 시그니처, 생성자 및 배열 활용
메서드 정의와 시그니처의 이해
자바에서 메서드의 고유성을 결정하는 요소는 메서드 이름과 매개변수 리스트를 합친 '시그니처(Signature)'입니다. 반환값은 시그니처에 포함되지 않으므로, 메서드를 구분할 때 반환 타입만으로는 부족합니다.
오버로딩 (Overloading): 하나의 클래스 내에서 동일한 이름을 가지되, 매개변수의 개수나 타입이 서로 다른 메서드를 선언할 ...
8월 1일 09:59에 게시됨
상태 패턴과 전략 패턴, 어떻게 구분하고 선택해야 할까?
서론: 비슷해 보이지만 본질이 다른 두 디자인 패턴
소프트웨어 설계에서 상태 패턴(State Pattern)과 전략 패턴(Strategy Pattern)은 종종 혼동된다. 두 패턴 모두 인터페이스를 기반으로 다형성을 활용하며, UML 클래스 다이어그램 상으로는 거의 동일한 구조를 가진다. 그러나 이 둘은 추구하는 목적과 적용되는 시나리오가 근본적으로 다르다. 어떤 패턴을 선택하느냐 ...
7월 25일 06:01에 게시됨
자바 객체 지향 핵심: 다형성, 추상 클래스, 인터페이스의 이해
객체 지향 프로그래밍(OOP)의 중요한 세 가지 개념인 다형성(Polymorphism), 추상 클래스(Abstract Class), 인터페이스(Interface)는 코드의 유연성, 확장성, 재사용성을 높이는 데 필수적입니다. 이 글에서는 각 개념의 원리와 활용법을 상세히 설명합니다.
1. 다형성(Polymorphism)
다형성은 '여러 가지 형태를 가질 수 있는 성질'을 의미합니다. 자바에서는 하 ...
7월 25일 00:02에 게시됨