728x90
728x90
일반화(Generic) - 클래스, 함수 일반화 가능 - 키워드 - Boxing, UnBoxing을 줄일 수 있음 - 불필요한 오버로딩을 줄일 수 있음 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _103_GenericFunc { class Program { static void GenericPrint(T data) { Console.WriteLine("data : {0}", data); } static void GenericPrint(T[] arrData) { for(int i = 0; i < arrData.Length; i..
컬렉션(Collection) - 데이터 저장, 검색, 기타 데이터 처리 특화 - 자료구조(Data Structure) - 선언 방법, 참조 방법, 중요 메소드 ArrayList - 배열과 비슷 - 크기가 유동적(동적) using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _095_ArrayList { class Program { static void Main(string[] args) { ArrayList arrList = new ArrayList(); //Add 함수는 어떤 데이터형도 다..
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CheckPoint04 { class Army { protected int _HP; protected int _MP; protected int _Speed; protected int _Attack; public virtual void Run() { Console.Write("{0}의 속도로", _Speed); } public virtual void Attack() { Console.WriteLine(); if (this is Healer) { Console.Write("[마법 공격력..
인터페이스 - 메소드, 이벤트, 인덱서, 프로퍼티, 필드 불가 - 구현부 없음(정의) - 인스턴스 생성 불가(참조 가능) - 다중 상속 시 인터페이스는 좋은 대안 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _089_Interface { interface IAA { //public int a; //에러(필드 불가) //private void IPrint() { } //에러(private) //public void IPrint(); //에러(public) int A { get; set; } //프로퍼티 가능 void IAAPri..
다형성 - virtual, override - 객체 지향의 핵심 - 함수의 오버라이딩(재정의) - 반복문으로 객체 관리 - virtual과 override 키워드 사용 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _083_override { class Super { protected int num; public virtual void Print() { Console.WriteLine("num : {0}", num); } } class AA : Super { public int a; public override void Prin..
클래스 상속(IS-A 관계) - 부모 클래스 : base, parent, 상위, super - 자식 클래스 : derived, child, 파생, sub - 클래스의 재사용 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _081_01_classInheritance { class Super { protected int a; //private 불가능, public 가능 public void Print() { Console.WriteLine("Super Print()"); } } class Sub : Super { int b; pub..