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에 게시됨

Java 객체 지향 프로그래밍 핵심 개념 정리

클래스 (Class) 클래스는 객체를 생성하기 위한 설계도로, 속성과 동작을 함께 정의합니다. 예를 들어 자동차의 색상과 문의 개수를 필드로 갖고, 주행 기능을 메서드로 구현할 수 있습니다. public class Automobile { String paintColor; int doorCount; public Automobile(String paintColor, int doorCount) { this.paintColor = paintColor; ...

7월 24일 00:34에 게시됨

파이썬 객체지향 프로그래밍의 다형성과 고급 특성

1. 다형성 개념 다형성이란 동일한 타입이 다양한 형태를 가질 수 있는 특성을 의미합니다. 예를 들어 동물이라는 개념은 사람, 원숭이, 오리 등 다양한 형태로 존재할 수 있습니다. 1.1 코드 구현 예제 from abc import ABC, abstractmethod class LivingBeing(ABC): @abstractmethod def move(self): pass @abstractmethod def communicate(s ...

7월 22일 17:22에 게시됨

C++ 핵심 개념 정리

1. 객체지향 3대 특성 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism) 2. 접근 지정자 private, protected, public 3. 생성자와 소멸자 클래스에는 기본 생성자, 복사 생성자, 대입 연산자, 소멸자가 포함된다. class Data { private: int x; int y; int z; public: Data(int a, int b, int c) : x(a), y(b), z(c) { // 초기 ...

7월 21일 06:07에 게시됨

C++ 기반 GUI 시뮬레이션과 컨테이너 클래스 구현

작업 1: GUI 요소의 조합 설계 이 작업은 C++에서 버튼과 창을 모델링하여 간단한 GUI를 시뮬레이션합니다. Button 클래스는 레이블을 가지고 클릭 시 메시지를 출력하며, Window 클래스는 여러 개의 버튼을 포함하는 조합 관계를 가집니다. 핵심 코드 #include <iostream> #include <string> #include <vector> class Button { public: explicit ...

7월 21일 05:42에 게시됨

디자인 패턴 개요

1. 객체지향 프로그래밍 이해 객체 1. 애플리케이션 내의 실체(엔티티) 2. 엔티티 간 상호작용을 통해 현실 세계의 문제를 해결할 수 있음 예: Person과 Car는 엔티티이다. Person은 Car를 운전하여 한 곳에서 다른 곳으로 이동할 수 있다 클래스 1. 클래스는 현실 세계의 엔티티를 표현할 수 있다 2. 클래스는 객체의 속성과 행위를 정의할 수 있다. 속성은 데이터 멤 ...

7월 19일 16:42에 게시됨