C#(65)
-
0318 is, as 연산자, IEquatable<T> 인터페이스
public class Unit:IEquatable { public string ID { get; private set; } public string Name { get; set; } public Unit(string id,string name) { this.ID = id; this.Name = name; Console.WriteLine("Unit 생성자 호출:{0} {1}", this.ID,this.Name); } //IEquatable 인터페이스 구현 public bool Equals(Unit other) { if (other == null) { return false; } if (this.ID == other.ID) { return true; } else { return false; } } publ..
2021.03.18 -
0317 interface+abstract+stack+queue
public class Censored:Abnormality,IEscapable,ISpawnBaby { public Censored() { } public void Escapable() { Console.WriteLine("검열삭제가 격리실을 벗어났습니다."); } public override void Attack() { Console.WriteLine("검열삭제가 공격합니다."); } public void SpawnBaby() { Console.WriteLine("검열삭제가 새끼를 깝니다."); } } public class SilentOrchestra:Abnormality,IEscapable { public SilentOrchestra() { } public void Escapable() { Cons..
2021.03.17 -
0317 Property 속성/Stack 클래스/Queue 큐
전용 필드의 값을 읽거나 쓰거나 계산하는 맴버; 변수처럼 사용할 수 있지만 실제론 접근자라는 특수 메서드 get 반환/set 키워드 새 값 할당 사용해서 새 값을 할당할 수 있다. 각기 다른 엑세스 수준을 가질 수 있다. value: set 접근자가 할당하는 값을 정의하는 데 사용 (매개변수) 주로 중요한 데이터에 대한 엑세스를 제한하는 데 사용 Property public class App { //생성자 public App() { Console.WriteLine("App"); //Marine 인스턴스 생성 Marine marine = new Marine(100f); //set속성으로 값 할당하기 marine.Hp = 10000; //get속성으로 출력 Console.WriteLine(marine.Hp)..
2021.03.17 -
0317 Abstract
클래스가 자체에서 인스턴스화 되지 않고 다른 클래스의 기본 클래스로만 사용된다. 추상 클래스에서 파생된 비 추상 클래스에 의해 구현 되어야 한다. 추상 메서드 선언은 추상 클래스에서만 허용된다. 추상 메서드는 본문이 없다. (정의만 내린다.) static /virtual를 쓰면 안됨. public abstract class ZergUnit:IBurrow { public abstract void Attack(); public abstract void Burrow(); public abstract void Unburrow(); } interface IBurrow { void Burrow(); void Unburrow(); } public class Zergling : ZergUnit { private boo..
2021.03.17 -
0317 인터페이스/Virtual
관련 기능 그룹에 대한 정의>>만 클래스에서 여러 상속을 지원하지 않기 때문에 > 구조체는 다른 구조체를 상속할 수 없기 때문에 interface I인터페이스 이름(형용사) { bool 인터페이스(T obj); } 인터페이스에서 상속받은 클래스는 반드시 메서드를 구현해야하고, 클래스에서는 메서드를 사용할 수 있다. 직접 인터페이스 인스턴스화 할 수 없다. (new (); 사용 불가) 클래스는 여러 인터페이스를 구현할 수 있다. 클래스는 기본 클래스를 상속할 수 있고, 하나 이상의 인터페이스를 제공할 수 있다. Virtual 파생 클래스에서 재정의할 수 있다. (더 구체적으로) Override 메서드를 확장하거나 수정 virtual을 부모 클래스에서 쓰고 자식 클래스에서 override public cla..
2021.03.17 -
0317 배열 복습★★★★
public class Item { private int id; private string name; public Item() { } public Item(int id, string name) { this.name = name; this.id = id; } public int GetId() { return this.id; } public string GetName() { return this.name; } } List public List() { //List 배열 변수 선언 List cookieNames; //List 배열 인스턴스 및 변수에 할당 cookieNames = new List(); //List 배열의 요소에 값 할당 cookieNames.Add("딸기맛 쿠키"); cookieNames.Add..
2021.03.17