클래스
- Class : 붕어빵 틀
- Object(객체) : 붕어빵
접근 제한자
(접극 제한자) class 클래스명
{
private int num//필드
public void sum(int num)
{
//메소드
}
public 클래스명{
//생성자
}
~클래스명(){
//소멸자
}
}
접근 제한자 | 설명 |
private | 클래스 내부에서만 접근 가능 |
public | 모든 곳에서 해당 멤버로 접근 가능 |
internal | 같은 어셈블리에서만 public으로 접근 가능 |
protected | 클래스 외부에서 접근할 수 없으나 파생 클래스에서는 접근 가능 |
protected internal | 같은 어셈블이에서만 protected으로 접근 가능 |
This
This 키워드는 자기 자신을 가릴킬때 사용하는 키워드.
- 매개변수 이름과 멤버 변수의 이름이 서로 같을때는 this 키워드를 사용하면 클래스 내에 정의한 멤버 변수를 가리킴
class A
{
private int num;
...
public A(int num)
{
//위에 선언한 클래스내 private int num을 가리킴
this.num = num;
}
...
}
생성자 (Constructor) 와 소멸자 (Destructor)
- 객체를 생성할 때 호출되는 메소드
- 메소드와는 달리 특정 값을 반환할 수는 없고, 반환형도 가지고 있지 않다.
- 따로 생성하지 않아도 기본 생성자가 생성됨
- 객체를 소멸시킬 때 호출되는 메소드
- 가비지 컬렉터(garbage collector) 에 의해 객체가 소멸하는 시점을 판단하여 호출되는 메소드 (메모리 관리)
- 소멸자는 , 생성자와 달리 상속이나 오버로드 될 수 없으며, 사용자가 호출할 수도 없다.
using System;
namespace CSharps
{
class MyClass // 클래스
{
private string name; //필드
public MyClass(String name) //생성자
{
this.name = name; //클래스 내 필드
Console.WriteLine("정수형 매개변수가 있는 생성자");
Console.WriteLine(name + "객체 생성!");
}
~MyClass() //소멸자 : 가비지를 수거하기 위함이지만 다른 방법 이용하는 것이 좋음
{
Console.WriteLine(name + " 객체 소멸! ");
}
}
class Program
{
static void Main(string[] args)
{
MyClass m1 = new MyClass("A");
MyClass m2 = new MyClass("B");
MyClass m3 = new MyClass("C");
}
}
}
- 가비지 컬렉터가 언제 움직일지, 어떤 순서로 소멸시킬지 모르기 때문에, 실행할 떄마다 소멸되는 순번이 다르다.