본문 바로가기

C# 공부5

C# 기본기 05 - 인터페이스와 열거형(Enums) 인터페이스 Interface클래스가 구현해야 할 멤버들을 정의해줌 (딱 선언까지만 해줌)인터페이스를 상속받는 클래스는 인터페이스에 정의된 모든 멤버를 구현해야 함!! (일종의 클래스 제약조건처럼 작동)인터페이스는 여러 클래스에 다중 상속이 가능/* 아이템 사용 로직에 활용할 인터페이스 */public interface IUsable{ void Use(); // Use 메서드 정의}/* 인터페이스 상속 - 아이템 클래스 */public class Item : IUsable{ public string Name { get; set; } public void Use() // 상속받은 Use 메서드 구현 { Console.WriteLine("아이템 {0}을 사용했습니다.", N.. 2025. 2. 10.
C# 기본기 04 - 클래스, 상속, 제너릭 클래스struct와 class 비교둘 모두 사용자 정의 자료형을 만들기 위한 녀석들이지만, 분명한 차이가 있으니 사용에 주의해야함 구조체 struct클래스 class보관되는 곳스택 영역힙 영역할당 방식값 저장참조 저장복사 방식개별 복사 (복사 값 수정해도 기존 값 영향 X)참조 복사 (복사 값 수정 시 기존 값도 변경 O)상속 여부불가능가능클래스의 접근 제한자class Person{ /* 필드 */ public string Name; // 외부에서 자유롭게 접근 가능 private int Age; // 같은 클래스 내부에서만 접근 가능 protected string Address; // 같은 클래스 내부와 상속받은 클래스에서만 접근 가능 /* .. 2025. 2. 10.
C# 기본기 03 - 메서드와 구조체 메서드[접근 제한자] [반환 타입] [메서드 이름]([매개변수]){ // 메서드 실행 코드}접근 제한자 Access Modifier메서드에 접근할 수 있는 범위, public, private, protected 등등을 활용반환 타입 Return Type메서드 반환 값의 자료 타입 지정, 반환 값이 없는 메서드인 경우 void/* 반환 값이 없는 경우 */void PrintFullName(string firstName, string lastName){ Console.WriteLine("Full Name: " + firstName + " " + lastName);}PrintFullName("John", "Doe");/* 반환 값이 있는 경우 */int AddNumbers(int a, int b){.. 2025. 2. 10.
C# 기본기 02 - 배열과 콜렉션 배열 Array 동일한 자료형의 값들이 연속적으로 저장되는 자료 구조 1) 일차원 배열/* 데이터타입[] 배열명 = new 데이터타입[배열크기] */int[] array1 = new int[5]; // 크기가 5인 int형 배열 선언string[] array2 = new string[3]; // 크기가 3인 string형 배열 선언/* 바로 값 넣으며 생성 */in[] array3 = { 1, 2, 3, 4 };// 배열 초기화array1[0] = 1;array1[1] = 2;array1[2] = 3;array1[3] = 4;array1[4] = 5;// array1 = [1,2,3,4,5];int num = 0;num = array1[0]; // 1배열의 길이는 Length2) 다차원 배열/.. 2025. 2. 10.
C# 기본기 01 - 기본 자료형, 형 변환, 문자열 Hello World로 기본 코드 구조 확인using System;namespace HelloWorld{ class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }}using System;C#에서 기본 제공하는 System이란 네임스페이스를 불러옴 (Console 클래스 사용 위함)만약 using System을 안 했다면, System.Console.WriteLine()처럼 사용해야함namespace HelloWorldnamespace는 C#에서 코드를 논리적으로 그룹화하기 위해 사용 program이란 클래스는 HelloWorld란 네임스페이스를 기준으로 정의됨!여러 .. 2025. 2. 10.