1) 인터페이스 특징
- 인터페이스란 클래스가 구현해야 하는 멤버들을 정의하는 것이다.
- 인터페이스는 클래의 일종이 아니며, 클래스에 대한 제약 조건을 명시하는 것이다.
2) 인터페이스 구현
- 인터페이스 및 멤버 정의하기
interface IMyInterface { void Method1(); int Method2(string str); } - 인터페이스 구현하기 class MyClass : IMyInterface { public void Method1() { // 구현 } public int Method2(string str) { // 구현 return 0; } }※ 인터페이스를 상속받으면 에러가 발생함 -> 바로바로 인터페이스에 구현되어 있는 멤버들을 구현해준다.
3) 인터페이스 vs 추상클래스
- 인터페이스의 특징과 장단점
- 인터페이스는 추상적인 동작만 정의하고, 구현을 갖지 않는다.
- 다중 상속이 가능하며, 여러 클래스가 동일한 인터페이스를 구현할 수 있다.
- 추상클래스의 특징과 장단점
- 추상 클래는 일부 동작의 구현을 가지며, 추상 메서드를 포함할 수 있다.
- 단일 상송만 가능하며, 다른 클래스와 함께 상속 계층 구조를 형성할 수 있다.
1) 열거형 특징
- 열거형은 서로 관련된 상수(정수만) 집합을 정의할 때 사용된다.
2) 열거형 구현
- 열거형 정의
enum MyEnum { Value1, Value2, Value3 }
- 열거형 사용
MyEnum myEnum = MyEnum.Value1;
- 열거형 형변환
int intValue = (int)MyEnum.Value1; // 열거형 값을 정수로 변환 MyEnum enumValue = (MyEnum)intValue; // 정수를 열거형으로 변환
1) 예외 처리 구현
- C#에서는 try-catch 블록을 사용하여 예외 처리를 수행한다.
- try 블록 내에서 예외가 발생할 수 있는 코드를 작성하고, catch 블록에서 예외를 처리한다.
※ C#에서 변수가 데이터를 저장하는 방식을 나타낸다.
1) 값형
- 값형은 변수에 값을 직접 저장한다.
- 변수가 실제 데이터를 보유하고 있으며, 해당 변수를 다른 변수에 할당하거나 전달할 때는 값이 복사된다.
- 값형 변수의 수정은 해당 변수의 값만 변경하므로 다른 변수에 영향을 주지 않는다.
- int, float, double, bool 등의 기본 데이터 타입들이 값형에 해당한다.
2) 참조형
- 참조형은 변수가 데이터에 대한 참조(메모리 주소)를 저장한다.
- 변수가 실제 데이터를 가리키는 참조를 갖고 있으며, 해당 변수를 다른 변수에 할당하거나 전달할 때는 참조가 복사된다.
- 참조형 변수의 수정은 동일한 데이터를 가리키고 있는 다른 변수에 영향을 줄 수 있다.
- 클래스, 배열, 인터페이스 등이 참조형에 해당한다.
※ 값형과 참조형 사이의 변환을 의미한다.
1) 박싱
- 값형을 참조형으로 변환하는 과정을 말한다.
2) 언방식
- 박싱된 객체를 다시 값형으로 변환하는 과정을 말한다.
/ 열거형
- 열거형은 쉽게 말해 [숫자에 이름을 붙여 가독성을 높이는 문법]이다.
/ LINQ
- LINQ는 Language Integrated Query의 약자로, 구구절절한 데이터 로직을 쉽게 정리 할수 있도록 하는 구문이다.
- 너무 과도하게 쓰는 것은 좋지 않지만(성능), 코드가 훨씬 깔끔해진다.
/ Static
- 클래스의 각각의 인스턴스(개별 객체)에 속해있지 않고, 클래스 그 자체에 속해있는 변수
※ (학생의 수 NumStudent를 Student클래스에 저장할 때 각각의 학생이 저장하는 게 아니고, Student 클래스 자체가 NumStudent를 저장하는 것)
/ Thread.Sleep()
- 몇 밀리세컨드동안 멈출건지 정한다.