본문 바로가기

전체 글17

[C#] 추상 클래스 추상 클래스(Abstract Class)는 클래스의 일종으로, 일반적인 클래스와는 달리 추상 메서드를 포함할 수 있습니다. 추상 메서드는 선언만 있고 구체적인 구현이 없는 메서드로, 이를 상속받는 하위 클래스에서 반드시 구현되어야 합니다. C#에서는 abstract 키워드를 사용하여 추상 클래스를 정의합니다. 추상 클래스의 정의 public abstract class Shape { public abstract void Draw(); // 추상 메서드 } 위의 예제에서 Shape 클래스는 추상 클래스로 선언되어 있습니다. 이 클래스에는 추상 메서드인 Draw가 선언되어 있습니다. 추상 클래스의 구현 public class Circle : Shape { public override void Draw() { .. 2024. 1. 12.
[C#] 인터페이스 인터페이스(Interface)는 객체 지향 프로그래밍에서 클래스의 일종으로, 메서드의 시그니처(선언)만을 정의하고 실제 구현은 하위 클래스에서 이루어지도록 하는 추상화된 형태를 제공합니다. 인터페이스를 통해 여러 클래스가 동일한 메서드 시그니처를 공유하여 일관된 인터페이스를 제공할 수 있습니다. C#에서는 interface 키워드를 사용하여 인터페이스를 정의합니다. 인터페이스의 정의 public interface IDrawable { void Draw(); // 메서드 선언만 가능하며, 구현은 하위 클래스에서 이루어짐 } 위의 예제에서 IDrawable 인터페이스는 Draw라는 메서드의 선언만을 가지고 있습니다. 구현은 이를 상속받는 클래스에서 이루어집니다. 인터페이스의 구현 public class Ci.. 2024. 1. 12.
[C#] 다형성 다형성은 객체 지향 프로그래밍의 중요한 특성 중 하나로, 하나의 인터페이스나 부모 클래스를 사용하여 다양한 하위 클래스의 객체를 다룰 수 있는 능력을 말합니다. 이를 통해 코드의 유연성이 높아지고, 동일한 인터페이스를 가진 객체들을 통일적으로 다룰 수 있습니다. 다형성은 크게 두 가지 형태로 나눌 수 있습니다. 컴파일 타임 다형성과 런타임 다형성입니다. 컴파일 타임 다형성 (Compile-Time Polymorphism) 컴파일 타임 다형성은 메서드 오버로딩과 관련이 있습니다. 같은 메서드 이름을 가지고 있지만 매개변수의 개수나 타입이 다르게 정의된 메서드를 호출할 때 컴파일러가 어떤 메서드를 호출할지 결정하는 다형성의 형태입니다. public class Calculator { public int Add.. 2024. 1. 12.
[C#] 상속 상속은 객체 지향 프로그래밍(OOP)에서 중요한 개념 중 하나로, 클래스들 간의 계층 구조를 형성하여 코드의 재사용성을 높이고 구조를 조직화하는 데 사용됩니다. 이를 통해 기존 클래스의 특징을 물려받고, 새로운 클래스를 만들어 확장할 수 있습니다. 상속의 개념 상속은 하위 클래스(자식 클래스)가 상위 클래스(부모 클래스)의 특성과 기능을 물려받는 것을 의미합니다. 부모 클래스의 모든 특성(멤버 변수, 메서드)은 자식 클래스에서 사용할 수 있으며, 이를 통해 코드의 중복을 줄이고 유사한 객체들을 쉽게 만들 수 있습니다. 상속의 구현 기본 문법 C#에서 상속은 :(콜론)을 이용하여 구현됩니다. public class ParentClass { // 부모 클래스의 멤버 변수와 메서드 } public class .. 2024. 1. 1.
[C#] 캡슐화 캡슐화는 객체 지향 프로그래밍의 중요한 개념 중 하나로, 데이터와 해당 데이터를 조작하는 코드를 함께 묶는 것을 의미합니다. 이를 통해 코드를 모듈화하고 외부에서의 접근을 제한하여 데이터의 무결성을 보호하고 객체의 상태를 숨기는 데 사용됩니다. 캡슐화의 개념 캡슐화는 객체의 상태(데이터)와 행동(메서드)을 하나로 묶어서 외부에서의 직접적인 접근을 제어하는 것을 말합니다. 즉, 객체의 내부 정보는 객체 자신만이 알고 있고, 외부에서의 직접적인 접근을 막아 데이터를 보호합니다. 객체의 상태는 숨기고, 외부에서는 객체의 메서드를 통해서만 상호작용할 수 있도록 합니다. 캡슐화의 장점 정보 은닉(Information Hiding) 객체의 상태를 숨김으로써 외부에서의 직접적인 접근을 제한함으로써, 객체의 데이터 무.. 2023. 12. 23.
[C#] 클래스와 객체 클래스와 객체는 객체 지향 프로그래밍(OOP)에서 중요한 개념입니다. 이러한 개념은 코드의 구조화와 모듈화를 도와주며, 코드의 재사용성과 유지보수성을 향상시키는 데 중요한 역할을 합니다. 클래스와 객체 클래스(Class) 클래스는 객체를 생성하기 위한 틀 또는 설계도로, 데이터와 메서드의 집합으로 구성됩니다. 클래스는 다음과 같은 구조를 가질 수 있습니다. public class Car { // 속성(멤버 변수) public string Brand { get; set; } public string Model { get; set; } // 메서드 public void Start() { Console.WriteLine("Car started!"); } } 위 코드에서 Car 클래스는 Brand와 Model이.. 2023. 12. 22.
[C#] 람다함수 이번 글에서는 람다함수 또는 람다식에 대해서 알아보겠습니다. 람다 함수 또는 람다식(Lambda Expression)은 익명 함수의 한 형태로, 함수를 간결하고 축약적으로 표현하는 방법 중 하나입니다. C#을 비롯한 많은 프로그래밍 언어에서 람다식은 함수형 프로그래밍의 핵심적인 개념 중 하나로 채택되어왔습니다. 이것은 코드를 더 읽기 쉽고 이해하기 쉽게 만들어주며, 간단한 작업들을 효율적으로 처리할 수 있게 해줍니다. 람다식의 구조 람다식은 보통 다음과 같은 구조를 가지고 있습니다. (parameter_list) => expression_or_statement_block parameter_list : 함수의 매개변수 목록입니다. => : 람다 식 연산자로, 매개변수 목록과 함수 본문을 구분합니다. exp.. 2023. 12. 22.
[C#] 익명함수 이번 글에서는 익명함수에 대해서 알아보겠습니다. 익명함수(Anonymous Function)는 이름이 없는 함수로, 일반적으로 델리게이트(Delegate)를 통해 사용됩니다. 코드의 일부분으로 함수를 선언하고 사용할 수 있는 유연한 개념입니다. C#에서는 람다식(Lambda Expression)이라는 형태로도 사용됩니다. 이러한 익명 함수는 간단한 로직이나 짧은 코드 블록을 함수로 간단히 정의하고 사용할 때 매우 유용합니다. 익명함수의 구조 1. 기본 구조 delegate (parameter_list) { // 함수의 실행 내용 }; 여기서 'delegate' 키워드를 사용하여 코드 블록을 정의하고, 해당 델리게이트의 인스턴스를 만듭니다. 2. 람다식 구조 (parameter_list) => expres.. 2023. 12. 22.