string keyword="반복";
3주차를 시작하자마자 멘붕에 빠졌다.
클래스? 구조체? 객체?
용어의 정의가 내 머릿속에 명확히 정리되지 않아서 이해가 힘들었다.
개인과제도 해야하고 진도도 나가야 하지만 이걸 이해하지 않고 나가면 앞으로도 이해를 못할 것같아 따로 공부를 했다.
유투브를 찾아보며 최대한 쉽게 설명 되어 있는 동영상들로 2차, 3차 반복 학습을 했다.
1.클래스
클래스는 객체를 생성하기 위한 커다란 설계도이다.
보통 붕어빵(객체)를 만들기 위한 붕어빵틀(클래스)에 비유 된다.
속성을 정의하고 객체를 동작시키기 위한 메서드를 클래스 안에 만들어 둘 수 있다.
또한 접근 제한자를 사용하여 데이터를 보호할 수 있는데,
public : 외부에서도 자유롭게 접근 가능
private : 같은 클래스에서만 접근 가능
protected : 같은 클래스+상속받은 클래스에서만 접근 가능
등으로 분류된다.
2.상속
상속은 부모클래스의 메서드나 속성들을 자식클래스가 그대로 받아 사용할 수 있도록 하는 것이다.
ex) public class Animal
{
public string Name { get; set; }
public int Age { get; set; }
public void Eat()
{
Console.WriteLine("Animal is eating.");
}
public void Sleep()
{
Console.WriteLine("Animal is sleeping.");
}
}
>>부모 클래스 하나를 생성한다.
public class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Dog is bark.");
}
}
>> : 표시로 상속을 받는다.
static void Main(string[] args)
{
Dog dog = new Dog();
dog.Name = "Bobby";
dog.Age = 3;
dog.Eat();
dog.Sleep();
dog.Bark();
}
>> 여기서, dog클래스는 부모가 만들어 놓은 메서드들+새롭게 만든 bark메서드까지 활용할 수 있다.
4. 다형성
(1) 가상 메서드
부모 메서드에 virtual, 자식메서드에 averride 키워드로 작동이 되는데,
부모클래스에서의 메서드를 자식클래스에서 필요에 따라 변경이나 확장할 수 있다.
좀 더 유연함.
(2) 추상 메서드
부모 메서드에 abstract, 자식메서드에 averride 키워드로 작동이 되는데,
부모 메서드 안에는 따로 구현할 수 없고 자식메서드 안에 무조건 구현이 되어 있어야 한다.
강제적임.
5. 제너릭
클래스나 메서드에 <T>와 같이 제너릭을 선언하면 코드를 재사용 할 수 있다.
똑같은 코드가 반복될 경우 가독성이 떨어지고 코드가 지저분해지는 것을 막을 수 있다.
6. 텍스트 게임 만들기
내일까지 개인과제를 무조건 제출해야 하기 때문에 3주차까지만 강의를 듣고 시작했다.
게임을 처음 시작할 때 인트로 화면을 메소드로 만들어 두었다.
if함수를 활용해서 각 번호를 누르면 해당하는 창이 뜨게 하고, 나갈 수 있는 outText를 따로 만들었다.
마무리
용어의 정의와 개념을 추가 공부하느라 시간을 많이 썼다.
뭔가 잘못 됐다는 느낌과 함께 처음으로 발을 잘못 들여놓은 것을 아닐까라는 생각이 들었다.
그래서 어느정도 학습을 한 뒤 4주차를 시작하기 보단 게임을 만드는 것을 시작했다.
내일 상태보기까지만이라도 구현을 할 수 있었으면 좋겠다.
.
.
.
with 용이요비
'개발자_뉴비일지' 카테고리의 다른 글
내일배움캠프 Unity 11일차 TIL - 기초 (1) | 2024.01.08 |
---|---|
내일배움캠프 Unity 10일차 TIL - 왜 안되지? (2) | 2024.01.05 |
내일배움캠프 Unity 8일차 TIL - null (1) | 2024.01.03 |
내일배움캠프 Unity 7일차 TIL - 지각 (0) | 2024.01.02 |
내일배움캠프 Unity 6일차 TIL - 헤멤 (0) | 2023.12.29 |