* C# 자주 쓰이는 클래스
0. List
int[] intArray = new int[10]; 은 고정된 길이의 배열을 만든다.
하지만 List 클래스를 사용하면 배열 크기를 가변적으로 할 수 있다.
List 클래스는 배열과 마찬가지로 특정 자료형의 리스트로 선언한다.
이를 위해 Generic을 사용하는데, Generic은 클래스 뒤에 <자료형>을 붙여 적용한다.
ex. List<int> list = new List<int>();
* 클래스 생성과 인스턴스 변수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Class Program{ class FirstClass{ public string name; public int age; public DateTime today; } class SecondClass{ } static void Main(string[] args){ FirstClass first = new FirstClass(); //Math와 같은 기본 클래스를 사용할 때는 따로 인스턴스를 만들지 않는다. } } | cs |
0. List에서 값을 제거할 때 for loop를 쓸 경우, 반드시 역 for loop로 삭제해야 한다.
* Overloading
0. 메소드 이름은 같으나 매개변수를 달리하는 메소드를 만드는 것
* 접근제한자(Access modifier)
0. 접근제한자를 입력하지 않으면 자동으로 private 접근제한자가 설정된다.
1. private은 자신의 클래스 내부에서만 메소드를 사용할 수 있다.
* 생성자(Constructor)
0. 생성자는 일반적으로 인스턴스 변수를 초기화하는 일을 한다.
1. 인스턴스 생성자
1 2 3 4 5 6 7 8 9 10 11 12 13 | public [클래스 이름]([매개변수]) { } 0. 이름은 클래스 이름과 같아야 한다. 1. 접근 제한자는 public 이어야 한다. 2. 반환과 관련된 선언을 하지 않는다. class Product { public Product(...) { } } | cs |
* 소멸자(Destructor)
0. 파일을 닫거나 웹 통신을 끊을 필요가 있을 때 사용
1. 클래스 이름 앞에 ~ 기호를 붙여 사용하고 접근제한자나 반환/매개변수 관련 선언을 하지 않는다.
2. 하나의 클래스에는 하나의 소멸자만 있다.
1 2 3 4 5 6 7 8 9 10 | class Product { public Product(...) { } ~Product() { } } | cs |
* 캡슐화
0. Getter, Setter
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public int GetWidth(){return width;} public int SetWidth(int width) { if(width > 0){this.width = width;} else{Console.WriteLine("높이는 자연수로 입력");} } //심플하게 class Box{ private int width; public int Width{ //속성 이름은 대문자로 시작한다. get{return width;} set{ if(width > 0){this.width = width;} else{Console.WriteLine("높이는 자연수로 입력");} } } } | cs |
* Value와 Reference
0. C#의 모든 자료형은 Value와 Reference로 나뉘어진다.
1. int나 float 등 기본 자료형은 Value이고, 클래스로 만들어진 인스턴스는 Reference이다.
'개발 > 기타' 카테고리의 다른 글
[Github] SSH key 등록 및 커밋 (2) | 2016.11.07 |
---|---|
[C#] 델리게이터(delegate)와 람다(lambda) (5) | 2016.06.09 |
[C#] 인터페이스(interface) (2) | 2016.06.07 |
[C#] 제네릭(Generic)과 구조체(Struct) (2) | 2016.06.05 |
[C#] 상속과 다형성 (2) | 2016.06.05 |
댓글