본문 바로가기
유니티/C#

6. C# 기초 수업 -6

by 찡사랑방 2023. 3. 27.
728x90
728x90

6번째 수업 필기

 

1. class vs struct

class - 참조형식, new(O), 상속가능

  class Player{ 
    public int hp; 
    public float moveSpeed; 
    public float damage; 
}

struct - 값형식, new(X), 상속불가능

ex)

  struct Item
{ 
    public string Name; 
    public int price; 
    public string explain; 
}
=> 
 private static void Main(string[] args) 
    { 
        Player player = new Player(); //생성자, addcomponent 
        player.hp = 100; 
        player.moveSpeed = 3.5f; 

        Item hpItem; 
        hpItem.Name = "HP"; 
        hpItem.price = 30; 
    } private static void Main(string[] args) 
    { 
        Player player = new Player(); //생성자, addcomponent 
        player.hp = 100; 
        player.moveSpeed = 3.5f; 

        Item hpItem; 
        hpItem.Name = "HP"; 
        hpItem.price = 30; 
    }

 

2. 클래스->단일상속 <-->구조체(c언어) 

   but 다중상속 <-->인터페이스(USB)<-->추상클래스

 

      class MovingObject 
{ 
    public int hp; 
    public float damage; 
} 
class Player: MovingObject 
{ 
    public float moveSpeed; 
} 

class Enemy : MovingObject 
{ 
    public string name; 
}

 

인터페이스 

interface ILogger//기능(메소드. 이벤트. 프로퍼티) 
{ 
    void WriteLog(string msg);(추상메소드)
}
class Player: MovingObject, ILogger 
{ 
    public float moveSpeed; 
} 

class Enemy : MovingObject, ILogger 
{ 
    public string name;

 

3. //추상메소드 -> 실행코드가 없는 이름만 존재하는 메소드
    //상속 후에 실행코드를 작성하는 코드  abstract

 

4.프로퍼티 (짱중요)

 

//프로퍼티 -> 특수한 메소드 -> 보안 

using System.Security.Cryptography.X509Certificates; 

class Player 
{ 
    public int hp; 
    float moveSpeed;  //안쓰면 private

    //프로퍼티
    public float MoveSpeed 
    { 
        get { return moveSpeed; } 
        set { 
            if (value >= 0 && value <= 5) 
                moveSpeed = value; 
            else moveSpeed = 3.5f; 
        } 
    } 
   --------------------------------------------------------------------------------------------------------------------------------↑↓ 비교
    public float GetSpeed()
    { 
        return moveSpeed; 
    } 

    public void SetSpeed(float value) 
    { 
        if (value >= 0 && value <= 5) 
            moveSpeed = value; 
        else moveSpeed = 3.5f; 
    } 
} 


internal class Program 
{ 
    private static void Main(string[] args) 
    { 

        Player player = new Player(); 
        player.hp = 100; 
        player.SetSpeed(3.5f);
        player.MoveSpeed = 300;

        float speed  = player.GetSpeed(); //읽기 전용
        speed = player.MoveSpeed;

    } 
}
728x90

'유니티 > C#' 카테고리의 다른 글

8. C# 기초 수업 -8  (0) 2023.03.29
7. C# 기초 수업 -7  (0) 2023.03.28
5. C# 기초 수업 -5  (0) 2023.03.24
4. C# 기초 수업 -4  (0) 2023.03.23
3. C# 기초 수업 -3  (0) 2023.03.22