이 섹션에서는 클래스의 개요에 대해 설명합니다
. 우리는 항상 C#이 객체 지향 프로그래밍이라고 말했고, 앞서 각 객체가 클래스에 속해야 한다는 것을 배웠습니다. 하지만 실제 프로그래밍에서는 많은 클래스가 정의되어 있습니다. , 프로그램에 대한 일부 클래스도 사용자 정의해야 합니다.
C#의 모든 클래스는 System.Object 클래스에서 직접 또는 간접적으로 상속하므로 C#의 클래스는 단일 루트에서 상속할 수 있습니다. 상속된 클래스를 명시적으로 지정하지 않으면 컴파일러는 기본적으로 클래스가 System.Object 클래스에서 상속된다고 생각합니다. System.Object 클래스는 소문자 개체 키워드로 표시될 수도 있습니다. 이 두 가지는 완전히 동일합니다.
정확하게 말하면 클래스에는 세 가지 주요 구성 요소가 있으며, 물론 여기서는 자세히 설명하지 않겠습니다. 자세한 내용은 나중에 자세히 설명하겠습니다.
1. 속성: 속성은 앞서 말했듯이 접근자 메서드를 사용하므로 읽기 전용이거나 쓰기가 가능합니다. 2.
메서드: 메서드를 사용하면 개체를 사용하여 작업을 수행할 수 있으며 실제로 속성 설정을 통해 다른 개체와 상호 작용할 수 있지만 메서드는 일부 복합 작업을 완료할 수도 있습니다.
3. 이벤트: 지난 수업에서 이벤트에 대해 이야기했습니다. 이벤트가 실행되면 해당 작업을 수행할 수 있습니다.
마지막으로 클래스를 완전히 정의한 후에는 이를 캡슐화할 수 있습니다. 이를 사용할 때 우리는 그것이 작업을 어떻게 완료하는지 신경쓰지 않습니다. 우리는 그것이 가지고 있는 공개 인터페이스가 무엇인지, 속성이 무엇인지, 메소드와 이벤트가 무엇인지만 알면 됩니다. 이들을 집합적으로 클래스 멤버라고 부릅니다.
이전에 말했듯이 클래스를 사용하여 N개의 개체를 만들 수 있지만 모두 격리되어 있습니다. 그러면 두 특정 클래스 간에 개체를 공유할 수 있는 방법이 있습니까?
요점을 말하자면, 일련의 메서드나 특성을 정의하고 이를 특정 클래스의 개체에 특별히 사용하는 대신 클래스 전체에 적용할 수 있습니다. 이를 공유 멤버(정적 멤버)라고 합니다. 예를 들어, 몇 권의 책이 출판되었는지 알고 싶다면 공유 속성 count 속성을 사용하거나, 모든 책의 가격을 조정하려면 공유 메소드 modemon()을 사용합니다. 이는 모두에게 20% 할인을 제공할 수 있습니다. 서적.
클래스에는 몇 가지 변수가 포함되어 있으며 이러한 변수의 데이터는 멤버 변수(앞서 자주 언급한 전용 변수)에도 포함되어 있으며 이러한 코드는 멤버 함수에도 포함되어 있습니다. 실제로 멤버 함수에서는 해당 속성, 메서드, 이벤트 및 기타 인터페이스만 제공하며 데이터 부분은 모두 숨겨지거나 캡슐화됩니다.
멤버 변수와 멤버 함수를 총칭하여 클래스 멤버라고 합니다. 정적 멤버와 엔터티 멤버로 구분됩니다.
아래 예를 살펴보겠습니다.
public static string aaa; --------정적 멤버 변수
public static void aaa() --------정적 멤버 함수
{
}
public string aaa; -------------엔티티 멤버 변수
public void aaa() -------------엔티티 멤버 함수
{
}
위에서는
static 키워드를 사용한다는 점에 유의하세요
. 정적 멤버 변수를 사용하는 경우개체를 선언하지 않고도 개체 개체를 먼저 선언해야
C#의 모든 개체를
사용할 수 있습니다.관리되는 힙에 생성됩니다. 인스턴스화된 유형을 객체라고 하며 핵심 기능은 데이터 멤버의 자체 복사본을 가지고 있다는 것입니다. 특정 개체가 보유한 이러한 데이터 멤버를 인스턴스 멤버라고 합니다. 반대로, 특정 객체에 의해 유지되지 않는 데이터 멤버를 정적 멤버라고 하며 클래스에서 static 한정자로 선언됩니다. 정적 데이터 멤버에 대해서만 작업을 수행하는 멤버를 정적 함수 멤버라고 합니다.
void도 있습니다. 일반 메서드나 함수가 실행된 후 반환되는 것은 int나 string과 같은 모든 유형이 될 수 있습니다. 값을 반환하지 않는 메서드를 작성하려면 반환 형식 대신 void 키워드를 사용해야 합니다.
따라서 우리는 위에서 public이라는 단어를 주목했을 것입니다. 사실 여기에는 privateprotectedinternal이라는 세 가지 형제가 있습니다. 이들은 데이터 숨기기 목적을 달성하기 위해 클래스 멤버에 대한 외부 작업을 제어하는 데 사용됩니다.
아래에서 하나하나 설명드리겠습니다
public: 모든 외부 클래스는 제한 없이 클래스 데이터에 액세스할 수 있습니다.
private: 이 클래스의 내부 사용을 제한합니다
. protected: 클래스 자체 외에도 이 클래스를 상속하는 모든 클래스는
내부를 사용할 수 있습니다. 이는 동일한 애플리케이션(Application) 또는 클래스 라이브러리(Library)에서 사용할 수 있지만, 이것이 우리가 기본적으로 필요하지 않은 것입니다.
http://www.cnblogs.com/thcjp/archive/2006/09/15/505022.html