TIL(2023.08.18)

최장범·2023년 8월 18일
0

TIL

목록 보기
10/50

오늘의 공부 내용

1.C#에서 다중 상속을 사용하지 않는 이유

  • 다이아몬드 문제
    • 한 자식 클래스가 두개 이상의 부모 클래스로부터 동일한 멤버를 상속 받을 수 있음
    • 어떤 부모 클래스의 멤버를 사용해야하는지가 모호해지고 그로인해 복잡성이 높아짐
  • 이름 충돌이 나게되고 해결이 어려움
  • C#은 단일 상속을 통한 설계의 일관성과 단순성을 유지하려함

2.인터페이스

  • 코드의 재사용을 위해서

  • 다중 상속을 지원함

  • 유연한 설계가 가능함

  • 인터페이스는 클래스가 아님

  • 클래스에 대한 제약 조건을 명시하는것이 주목적

  • 구현

interface IMyInterface
{
    void Method1();
    int Method2(string str);
}

-위의 예시처럼 대문자 I로 이름을 시작하는 규칙이 있다.

  • 인터페이스와 추상클래스의 차이점
    -인터페이스(Interface)는 추상적인 동작만 정의, 다중 상속이 가능
    -추상클래스(Abstract)는 일부동작의 구현을 가지면, 추상 메서드를 포함할수 있고, 단일 상속만 가능

3.열거형

  • Enums
  • 블랙잭 게임 만들기에서 사용했었음
    -열거형은 벨류를 넣어주면 그 숫자를 인식하고 넣어주지 않은 다음 벨류값에서부터는 그 전에 입력했던 값의 +1을 값으로지정한다. 예를들면 위의 코드에서 Two를 2로 지정해주고 그 이후에 것들은 지정해주지 않았기에 알아서 3,4,5,6...등의 값을 가지게 된다.

4.개인과제 준비

  • Text Game만들기
  • 어떤 식으로 게임을 만들지 브레인 스토밍
  • 팀원분께서 공유해주신 유용한 코드
    - 문자가 하나하나 출력됨
  public void TextOutput(string text)
	{
		for (int i = 0; i < text.Length; i++)//text.Length 문자열 길이\
        {
			string text1 = text.Substring(i, 1);// 문자 하나하나 잘라줌
			Console.Write(text1);//자른 문자 출력해줌
			Thread.Sleep(150);
		}
		Console.WriteLine();
	}

오늘 공부한 것에 대한 생각

  1. 3주차 과제에서 블랙잭 카드게임 만들기를 진행할때 Enums 열거형에 대해서 이해가 가지 않았는데 4주차 강의내용에 있어서 좀더 자세히 이해할 수 있는 기회가 되어 다행스러웠다. 구글링과 chatGPT의 설명에는 가끔씩 핵심을 빠트리고 설명해주는 기분이 들어 처음 배우는 부분들에 대해서는 아쉬움이 항상 있었는데 강의자료와 함께 예제를 들어가며 설명을 들으니 이해도가 훨씬 좋다.

  2. 개발뿐 아니라 다른 일들도 마찬가지겠지만 좋은 팀원들과 함께 공부를 하고 시간을 보내면 본인 스스로도 더욱 더 성장을 하는 것 같다. 직접 공부하시면서 찾으신 자료들을 흔쾌히 공유해주셔서 본인도 새로운 지식을 얻게 되었고 앞으로도 공부를 진행하다가 유용하거나 유익한 자료들이 있으면 꼭 공유를 하고 서로의 생각을 나눠보는 습관을 가지도록 해야겠다.

1개의 댓글

comment-user-thumbnail
2023년 8월 18일

많은 것을 배웠습니다, 감사합니다.

답글 달기