본문 바로가기

Program Language/C#51

Part2. C# 기초 다지기(13. 속성) 일부 다른 언어들도 마찬가지겠지만 보통 정보 은닉과 캡슐화를 위해 필드를 private로 설정하고 public으로 게터(getter)와 세터(setter)를 제공합니다. C#도 마찬가지 방법으로 사용할 수 있지만, 속성(Property)이라는 개념을 활용하면 좀 더 편리하고 안전하게 이러한 목적을 달성할 수 있습니다. 정보 은닉과 캡슐화 C#에서 속성은 객체 지향 프로그래밍의 핵심 개념 중 하나인 정보 은닉(information hiding)을 위한 구문으로, 객체의 필드 값을 안전하고 편리하게 제어할 수 있도록 하는 방법입니다. public class Person { private string name; private int age; public string Name { get { return name.. 2023. 3. 5.
Part2. C# 기초 다지기(12. 인수 전달 방법) C#에서는 메서드에 인수를 전달하는 방법으로 크게 세 가지 방식이 있습니다. 각각의 방법은 서로 다른 방식으로 인수를 전달하며, 각각의 상황에 맞게 사용됩니다. 이번 포스팅에서는 인수를 전달하는 세 가지 방식에 대해서 정리했습니다. 값에 의한 전달(Pass by Value) 값에 의한 전달은 메서드에서 전달된 인수의 값이 복사되어 처리되는 방식입니다. 이 방식으로 전달된 인수는 메서드에서 변경되어도 호출한 쪽에는 영향을 주지 않습니다. static void Increase(int num) { num = num + 1; } static void Main(string[] args) { int number = 5; Increase(number); Console.WriteLine(number); // 출력 결과.. 2023. 3. 2.
Part2. C# 기초다지기(11. 메서드 오버로딩) 메서드 오버로딩 C#에서 메서드 오버로딩(overloading)은 하나의 클래스나 구조체 내에서 메서드 이름은 같고 매개변수의 개수나 타입이 다른 여러 메서드를 정의하는 것입니다. 즉, 같은 이름의 메서드가 매개변수의 개수나 타입에 따라 다른 동작을 하게 됩니다. 메서드 오버로딩을 사용하면 같은 이름으로 메서드를 여러 개 만들 수 있기 때문에 같은 동작을 하는 메서드라도 매개변수의 종류나 개수를 다르게 하여 코드 중복을 줄일 수 있습니다. 아래는 메서드 오버로딩을 사용한 예제입니다. using System; namespace MethodOverloading_exam { class Calculator { public int Add(int x, int y) { return x + y; } public dou.. 2023. 2. 28.
Part2. C# 기초 다지기(10. 클래스의 구성) C# 클래스는 필드, 속성, 메서드, 생성자, 이벤트 등의 다양한 구성 요소를 가질 수 있습니다. 이번 포스팅에서는 C#클래스의 구성에 대해서 정리했습니다. 필드(Fields) 필드는 클래스에서 사용할 데이터를 저장하는 데 사용됩니다. 필드는 다른 클래스 멤버에서 사용될 수 있으며, 클래스의 인스턴스를 생성할 때 초기화됩니다. class MyClass { int myField; } 속성(Properties) 속성은 클래스의 필드 값을 가져오거나 설정하기 위한 메커니즘을 제공합니다. 속성은 필드를 캡슐화하여 외부에서 직접 필드 값을 변경하지 못하도록 합니다. class MyClass { private int myField; public int MyProperty { get { return myField; .. 2023. 2. 24.
Part2. C# 기초 다지기(9. 클래스와 구조체) C#에서 클래스와 구조체는 둘 다 객체 지향 프로그래밍의 기본적인 구성 요소로 사용됩니다. 그러나 둘은 약간의 차이점이 있습니다. 이번 포스팅에서는 클래스와 구조체 각각의 특징에 대해서 정리했습니다. 클래스(Class) 클래스는 객체 지향 프로그래밍에서 가장 기본적인 개념 중 하나입니다. 클래스는 데이터와 메서드(또는 함수)를 포함할 수 있으며, 이러한 데이터와 메서드는 클래스의 인스턴스(즉, 객체)에서 사용될 수 있습니다. 클래스 선언 class MyClass { // 클래스의 멤버 변수 (데이터) private int myInt; private string myString; // 클래스의 생성자 public MyClass(int num, string str) { myInt = num; myString.. 2023. 2. 23.
Part2. C# 기초 다지기(8. 버블 정렬) 버블 정렬(Bubble Sort) 버블 정렬은 두 개의 인접한 원소를 비교하여 작은 값을 앞쪽으로 큰 값을 뒤쪽으로 교환하는 정렬 알고리즘입니다. 이 과정을 반복하면서 순차적으로 정렬을 수행하며, 정렬이 완료될 때까지 반복합니다. 다음은 버블 정렬의 구현 예제입니다. using System; namespace BubbleSort_exam { internal class Program { static void Main(string[] args) { int[] arr = { 3, 2, 4, 1, 5 }; BubbleSortFunc(arr); for (int i = 0; i < arr.Length; i++) { Console.Write(arr[i] + " "); } } static void BubbleSortF.. 2023. 2. 22.