캠프가 쉬는 날이지만 하루 패턴이 깨지지 않게 일어나는 시간, 공부를 시작하는 시간, 밥 먹는 시간을 맞춰서 생활하였다
자는 시간도 맞춰서 할 예정!
(그렇기 때문에 평소보다는 공부한 내용이 많지는 않지만 TIL도 작성하는것!)
2주차 복습
관련 개념들을 한번 읽어보았다
딱히 어렵거나 이해가 안 가는 개념은 없었지만 중요한 개념 하나만 적자면
오버로딩은 동일한 이름의 메서드를 매개변수의 개수, 타입, 순서에 따라 다르게 호출 해준다
그리고 과제에서 꽤 생각이 필요했던 부분들과 구글링의 힘을 빌렸던 부분들을 다시 살펴보고 내 코드가 되기 위해 다시 구현해보았다
- 소수 구하기에서 입력 받은 숫자가 홀수라면 그 숫자의 제곱근 까지 검사하여 약수가 있다면 소수가 아니다 라는 알고리즘을 사용했는데 이 부분은 생각하기 어려워 구글링의 힘을 빌렸었다... 다시 한번 생각해보자면 제곱근 이후의 숫자들은 이미 이전에 제곱근 이하의 수로 나누어 봤을 때의 결과와 중복됨으로 제곱근까지만 검사하면 된다 !
-틱택토 만들기에서는 로직을 짜는 부분과 예외처리를 하는 부분에서 생각을 많이 하게 되었다
각각 어떤 기능을 만들어야 할지는 감이 오는데 이걸 한번에 묶으려는 과정에서 과부하가 와서 어디에 어떤 기능을 넣어야
하고 예외처리를 어떻게 해야하는지 감이 잡히지 않았다
약간 퍼즐 조각은 만들었는데 하나의 그림으로 완성이 되질 않는다 ...?
이 부분은 틱택토의 진행 방법과 규칙에 대해 생각하면서 공책에 하나씩 적어보면서 고쳐나가는 방식으로 구현을 했고 이 역시 잘 안되는 부분은 구글링의 힘을 빌렸었다 오늘 다시 차근차근 구현해보니까 확실히 더 이해할 수 있었다
게임 로직 같은 경우는 경험이 중요하다고 생각하는데 간단한 게임을 또 만들어보면서 확실히 익히면 좋을것 같다
3주차
객체지향의 특징
캡슐화, 상속, 다형성, 추상화, 객체
클래스 : 객체를 생성하기 위한 템플릿 또는 설계도
(클래스 : 설계도 , 객체 : 설계도를 바탕으로 만든것)
구조체와 클래스
구조체 | 클래스 | |
형식 | 값 | 참조 |
할당 위치 | 스택 | 힙 |
사용 방법 | 작은 크기의 데이터 저장이나 단순한 데이터 구조에 적합 | 더 복잡한 객체를 표현하고 다양한 기능을 제공할 때 적합 |
생성자 : 초기화를 담당
오버로딩이 가능하다
기본적으로 디폴트 생성자가 자동으로 생성되지만 사용자 정의 생성자가 있을때는 생성되지 않아 디폴트 생성자를 직접 만들어야한다
프로퍼티
객체의 필드를 간접적으로 접근해주는 메서드
ex)
class Person
{
string name;
//자동 프로퍼티
//public string Name { get;set; }
public string Name
{
get { return name; }
set { name = value; }
}
}
static void Main(string[] args)
{
Person p = new Person();
p.Name = "hwon";
Console.WriteLine($"Name : {p.Name}};
}
이렇게 접근하고 자동 프로퍼티로 따로 구현하지 않아도 접근이 가능하다 !
(c++ 에서는 직접 get,set 함수를 구현했어야 했는데 꽤 편리한 기능이라고 생각한다)
상속
단일상속, 인터페이스 상속(여러개의 인터페이스를 다중 상속 받을 수 있다) 이 있다
부모 클래스에서 virtual 키워드를 사용하면 실형태가 다를 수 있으니 재정의가 되어있는지 자식 클래스에서 override 키워드를 살펴본다 (부모를 참조의 형태로 사용하고 자식을 실형태로 사용할 때 사용)
추상클래스 : 직접적으로 인스턴스를 생성할 수 없는 클래스
abstract 키워드를 사용하여 선언되며 추상메서드는 구현이 없고 자식 클래스에서 무조건 정의해야한다
(무조건 실형태로 사용)
out 키워드 : 메서드에서 반환 값을 매개변수로 전달하는 경우에 사용
ref 키워드 : 매개변수를 수정하여 원래 값에 영향을 주는 경우에 사용
*ref : 메서드에서 값을 반환하는 것이 아니라, 매개변수를 이용하여 값을 전달
*c++의 참조와 비슷하다(&)
*값 복사가 아닌 값 참조
생각보다 c++ 과 비슷한 점이 많아 비교도 해보고, 새로운 점도 꽤 있어서 은근히 배우는 재미가 있는것 같다
'TIL' 카테고리의 다른 글
[TIL] 내일배움캠프_Unity C# 문법 종합반 3주차 과제 복습, 게임 로직 관련, 학습법 특강(feat.ChatGPT) (0) | 2023.08.17 |
---|---|
[TIL] 내일배움캠프_Unity C# 문법 종합반 3주차, 고민해결 (0) | 2023.08.16 |
[TIL] 내일배움캠프_Unity 6일차 C#문법 종합반 1,2주차 ,GitHubDesktop (0) | 2023.08.14 |
[TIL] 내일배움캠프_Unity 5일차 컴퓨터 구조, 미니프로젝트 발표회 (0) | 2023.08.11 |
[TIL]내일배움캠프_Unity 4일차 미니프로젝트 완료 및 복습, git 특강, 컴퓨터구조 (0) | 2023.08.10 |