... | @@ -7,7 +7,7 @@ |
... | @@ -7,7 +7,7 @@ |
|
개발자가 직접 속성과 메서드로 구성된 타입을 정의한 것이다. 클래스로 정의된 타입은 모두 참조형으로 분류되므로 사용하려면 new 연산자로 메모리 할당을 해야한다.
|
|
개발자가 직접 속성과 메서드로 구성된 타입을 정의한 것이다. 클래스로 정의된 타입은 모두 참조형으로 분류되므로 사용하려면 new 연산자로 메모리 할당을 해야한다.
|
|
|
|
|
|
## 객체와 인스턴스
|
|
## 객체와 인스턴스
|
|
클래스 타입의 변수를 선언했을 때 **객체**라 부르고, 그 객체가 new 키워드를 써서 실제 메모리에 할당됐을때 **인스턴스**라고 한다.
|
|
클래스 타입의 변수를 선언했을 때 **객체**라 부르고, new 키워드를 써서 그 객체가 실제 메모리에 할당됐을때 **인스턴스**라고 한다.
|
|
|
|
|
|
### 필드
|
|
### 필드
|
|
클래스의 속성을 변수로 정의한 것이다. 기본형 타입이나 사용자 정의형 타입으로 정의할 수 있다. 멤버 변수라고도 한다.
|
|
클래스의 속성을 변수로 정의한 것이다. 기본형 타입이나 사용자 정의형 타입으로 정의할 수 있다. 멤버 변수라고도 한다.
|
... | @@ -94,7 +94,7 @@ class Dog |
... | @@ -94,7 +94,7 @@ class Dog |
|
Main 메서드의 인자로 사용되는 string 배열 사용 예제
|
|
Main 메서드의 인자로 사용되는 string 배열 사용 예제
|
|
|
|
|
|
```c#
|
|
```c#
|
|
public void Bark() //이 메서드를 쓰려면 Dog.KingDog.Bark() 이런식으로 호출 가능하다.
|
|
public void Bark()
|
|
{
|
|
{
|
|
Console.WriteLine("첫번째 인자로 멍멍이 입력되었습니다. 멍멍!");
|
|
Console.WriteLine("첫번째 인자로 멍멍이 입력되었습니다. 멍멍!");
|
|
}
|
|
}
|
... | @@ -112,7 +112,7 @@ public static void Main(string[] args) |
... | @@ -112,7 +112,7 @@ public static void Main(string[] args) |
|

|
|

|
|
|
|
|
|
### 정적 생성자
|
|
### 정적 생성자
|
|
정적 멤버를 초기화하는 기능을 한다. 클래스에 단 한개만 존재 할 수 있다. 최초로 접근하는 시점에 우선적으로 단 한 번만 실행된다.
|
|
정적 멤버를 초기화하는 기능을 한다. 클래스에 단 한 개만 존재 할 수 있다. 최초로 접근하는 시점에 우선적으로 단 한 번만 실행된다.
|
|
|
|
|
|
```c#
|
|
```c#
|
|
public static Dog KingDog = new Dog("왕개"); //위 아래는 같은 코드가 된다.
|
|
public static Dog KingDog = new Dog("왕개"); //위 아래는 같은 코드가 된다.
|
... | @@ -181,7 +181,7 @@ namespace ConsoleApplication1 |
... | @@ -181,7 +181,7 @@ namespace ConsoleApplication1 |
|
|internal|동일한 어셈블리 내에서는 public에 준한 접근을 허용한다. 다른 어셈블리에서는 접근할 수 없다.|
|
|
|internal|동일한 어셈블리 내에서는 public에 준한 접근을 허용한다. 다른 어셈블리에서는 접근할 수 없다.|
|
|
|internal protected|protected와 internal의 조합이다. 동일 어셈블리 내에서 정의된 파생 클래스에만 접근을 허용한다.|
|
|
|internal protected|protected와 internal의 조합이다. 동일 어셈블리 내에서 정의된 파생 클래스에만 접근을 허용한다.|
|
|
|
|
|
|
접근 제한자를 명시하지 않은 경우에는 클래스는 internal, class 내부의 멤버들은 private으로 설정된다.
|
|
접근 제한자를 명시하지 않은 경우에는 클래스는 internal, 클래스 내부의 멤버들은 private으로 설정된다.
|
|
```c#
|
|
```c#
|
|
class Dog //접근 제한자 생략한 상태는 internal로 되기 때문에 객체 생성이 가능하나, private으로 접근 제한자를 바꾼다면 에러 발생.
|
|
class Dog //접근 제한자 생략한 상태는 internal로 되기 때문에 객체 생성이 가능하나, private으로 접근 제한자를 바꾼다면 에러 발생.
|
|
{
|
|
{
|
... | | ... | |