Unity/c#9 7. C# 상속성 객체 지향 프로그래밍에서 매우 중요한 개념인 상속성과 다형성에 대해 알아보자. 우선 상속과 다형성이 필요한 이유는 C#에서 반복된 코드를 줄이기 위해 사용된다. 이래야 가독성 향상과 해석하는 시간을 줄일 수 있기 때문이며, 유지보수 하기 편리하기 때문이다. 먼저 강아지, 고양이 클래스를 생성 후 동물 클래스를 만들어보자. class Dog { public int Age { get; set; } public string Color { get; set; } public Dog() { this.Age = 0; } public void Eat() { Console.WriteLine("[강아지] 냠냠"); } public void Sleep() { Console.WriteLine("[강아지] 쿨쿨"); } pub.. 2023. 9. 21. 6. C# 값 복사와 참조 복사 C#의 모든 자료형은 값 또는 참조 두 가지로 분류된다. static void Main(string[] args) { int a = 10; } static void Main(string[] args) { Random rand = new Random(); } a 10 rand 0x01 객체 rand의 주소 0x01 이렇게 int, float 등 기본 자료형은 값, 클래스로 만들어진 인스턴스(객체)는 참조 메서드의 매개변수로 값과 참조 전달 시 큰 차이가 발생한다. class Program { static void Change(int input) { input = 20; } static void Main(string[] args) { int a = 10; Change(a); Console.WriteLine(.. 2023. 9. 8. 5. C# 캡슐화와 프로퍼티 캡슐화는 클래스 내부의 변수들이나 메서드들에 접근하지 못하도록 꽁꽁 감싸는 것을 말한다. 하지만 클래스 내부에서 접근은 하되 조건을 걸어 음수 또는 특정한 값이 되어야 들어갈 수 있는 위험성을 원천 봉쇄하는 방법도 있다. class Entrance_Village { private int level; private int force; public Entrance_Village(int level, int force) { if( level > 255 || force > 1350 ) { this.level = level; this.force = force; } else { Console.WriteLine("들어갈 수 없습니다."); } } } 하지만 필드 멤버 변수(level, force)를 바로 수정할 수는 .. 2023. 9. 1. 4. C# 생성자(Constructor)와 소멸자(Destructor) 무언가를 생성할 때 자동으로 호출되는 메서드가 있다. 바로 생성자 메서드(Constructor Method)이다. 인스턴스 생성자의 생성 조건은 이러하다. 1. 이름이 클래스 이름과 같다. 2. 접근 제한자는 public이다. 3. 반환과 관련된 선언을 하지 않는다. 우선 생성자로 private 생성자에 대해 알아보자. class Program { class Hidden { private Hidden() {} } static void Main(string[] args) { Hidden hidden = new Hidden(); } } 생성자로 클래스의 인스턴스를 만들 수 없게 할 때는 private 생성자를 사용한다. class Sample { public static int value; static Sa.. 2023. 8. 6. 3. C# 메서드, 접근 제한자 C#에서 인스턴스 메서드 생성과 기본적인 사용방법은 이러하다. class Program { class ExMethod { public int Score(int a) { return a * a; } } static void Main(string[] args) { ExMethod exmethod = new ExMethod(); Console.WriteLine(ExMethod.Score(5)); } } 이렇게 인스턴스화될 때 메모리에 로드되고, 인스턴스 메서드는 클래스의 인스턴스에서 호출될 때만 사용할 수 있다. 하지만 static으로 정적 메서드를 만들어준다면 인스턴스를 생성하지 않고 메서드를 사용할 수 있게 된다. Overloading : 이름은 같고, 매개변수는 다른 메서드를 만드는 방법이다. 위의 클래.. 2023. 8. 1. 2. C# - 많이 쓰는 Math 클래스와 클래스의 인스턴스 이번엔 클래스들 중 많이 쓰이는 Math클래스의 여러 기능들과 어떻게 쓰는지 알아보자. Math.Min 메서드에 두 개의 매개변수가 들어가는데, 2개의 숫자 중 작은 수를 반환한다. 10 반환 int a = Math.Min(10, 20); Console.WriteLine(a); Math.Max 메서드도 2개의 매개변수와 2개 숫자중 큰 수를 반환한다. 20 반환 int a = Math.Max(10, 20); Console.WriteLine(a); Math.Abs 메서드는 부호있는 정수를 절대값으로 반환한다. 10 반환 int a = Math.Abs(-10); Console.WriteLine(a); Math.Round 메서드는 부동 소수점의 값을 가장 가까운 정수값으로 반환한다. 3을 반환 double a.. 2023. 7. 17. 이전 1 2 다음