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 |