Latest web development tutorials

C # 클래스 (클래스)

당신이 클래스를 정의 할 때, 당신은 데이터 유형에 대한 청사진을 정의합니다. 이것은 실제로 데이터를 정의하지 않지만 의미는 클래스의 이름을 정의, 즉, 오브젝트 클래스를 구성하는 어떤 대상물에 무엇인가 작업을 수행한다. 객체는 클래스의 인스턴스입니다. 클래스를 구성하는 방법과 변수는 클래스의 멤버가된다.

클래스 정의

클래스 정의는 키워드의클래스 이름 다음에 시작된다.클래스의 본문은 중괄호 한 쌍에 포함. 다음은 클래스 정의의 일반적인 형태입니다 :

<액세스 지정자> 클래스 CLASS_NAME 
{
    // 멤버 변수
    <액세스 지정자> <데이터 유형> 변수 1;
    <액세스 지정자> <데이터 유형> 변수 2;
    ...
    <액세스 지정자> <데이터 유형> variableN;
    // 회원의 방법
    <액세스 지정자> <리턴 유형> 방법 항목 (parameter_list) 
    {
        // 메소드의 몸체 
    }
    <액세스 지정자> <리턴 유형> 방법 2 (parameter_list) 
    {
        // 메소드의 몸체 
    }
    ...
    <액세스 지정자> <리턴 유형> methodN (parameter_list) 
    {
        // 메소드의 몸체 
    }
}

참고 :

  • 액세스 식별자 <액세스 지정>는 액세스 규칙 클래스와 그 멤버를 지정합니다. 지정되지 않은 경우, 기본 액세스 식별자입니다. 기본 액세스 식별자 클래스는 기본 액세스 식별자 회원은비공개 내부입니다.
  • 데이터 유형 <데이터 유형> 변수의 유형을 지정, 반환 형식은 <리턴 유형>은 메서드가 반환에 의해 반환 된 데이터의 유형을 지정합니다.
  • 당신은 클래스의 멤버에 액세스하려면 도트 (.) 연산자를 사용하고 싶습니다.
  • 도트 연산자 이름의 이름, 객체의 부재를 연결한다.

다음 예는 개념은 지금까지 논의 된 예시 :

시스템을 이용하여;
네임 스페이스 BoxApplication
{
    클래스 상자
    {
       공공 더블 길이; // 길이 공공 더블 폭; // 폭 공공 이중 높이; // 높이}
    클래스 Boxtester
    {
        정적 무효 메인 (문자열 []에 인수)
        {
            상자 BOX1 = 새로운 상자 (); //이 BOX1를 선언, 입력 상자
            상자 BOX2 = 새로운 상자 (); //이 BOX2를 선언, 입력 상자
            더블 볼륨 = 0.0; Box1.height = 5.0를 자세히 // // BOX1 볼륨;
            Box1.length = 6.0;
            Box1.breadth = 7.0;

            // BOX2 자세히 Box2.height = 10.0;
            Box2.length = 12.0;
            Box2.breadth = 13.0;
           
            // BOX1 볼륨 볼륨 = Box1.height * Box1.length * Box1.breadth;
            Console.WriteLine ( "BOX1 볼륨 : {0}", 볼륨);

            // BOX2 볼륨 볼륨 = Box2.height * Box2.length * Box2.breadth;
            Console.WriteLine ( "BOX2 볼륨 : {0}", 볼륨);
            Console.ReadKey ();
        }
    }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

BOX1 볼륨 : 210
BOX2 볼륨 : 1560

멤버 함수 및 패키지

클래스의 멤버 함수는 단지 다른 변수와 같은 클래스 정의의 정의 또는 프로토 타입 함수이다. 클래스의 일원으로서, 그것은 어떤 객체 클래스의 모든 멤버를 작동 할 수 있으며, 객체의 클래스에 액세스 할 수 있습니다.

멤버 변수 (도면의 설계 점)에서 객체의 속성이며, 그들은 패키지를 구현하는 전용 남아있다. 이러한 변수는 오직 공개 멤버 함수에 액세스 할 수있다.

의 설정과 반원의 다른 유형의 값을 얻기 위해 위의 개념을 사용하자 :

시스템을 이용하여;
네임 스페이스 BoxApplication
{
    클래스 상자
    {
       개인 더블 길이; // 길이 개인 더블 폭; // 폭 개인 이중 높이; // 높이 공공 무효으로 SetLength (더블 렌)
       {
            길이 = 렌;
       }

       공공 무효 setBreadth (더블 BRE)
       {
            폭은 BRE를 =;
       }

       공공 무효 setHeight (더블 평)
       {
            높이 = 평;
       }
       공공 더블 경우 getVolume ()
       {
           반환 길이 * 폭 * 높이;
       }
    }
    클래스 Boxtester
    {
        정적 무효 메인 (문자열 []에 인수)
        {
            상자 BOX1 = 새로운 상자 (); //이 BOX1를 선언, 입력 상자
            상자 BOX2 = 새로운 상자 (); //이 BOX2를 선언, 입력 상자
            더블 볼륨; // // BOX1 볼륨 Box1.setLength를 자세히 (6.0);
            Box1.setBreadth (7.0);
            Box1.setHeight (5.0);

            // BOX2가 Box2.setLength를 자세히 (12.0);
            Box2.setBreadth (13.0);
            Box2.setHeight (10.0);
       
            볼륨 // BOX1 부피 = Box1.getVolume ();
            Console.WriteLine ( "BOX1 볼륨 : {0}", 볼륨);

            볼륨 // BOX2 부피 = Box2.getVolume ();
            Console.WriteLine ( "BOX2 볼륨 : {0}", 볼륨);
           
            Console.ReadKey ();
        }
    }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

BOX1 볼륨 : 210
BOX2 볼륨 : 1560

C #을 생성자

클래스의 생성자는 새 객체 클래스를 만들 때 실행되는 특별한 클래스 멤버 함수이다.

정확히 같은 클래스 생성자의 이름, 그것은 어떤 반환 형식이 없습니다.

다음은 생성자의 개념을 설명합니다 :

시스템을 이용하여;
네임 스페이스 LineApplication
{
   클래스 라인
   {
      개인 더블 길이, 라인 공공 라인의 // 길이 ()
      {
         Console.WriteLine는 ( "개체가 생성되었습니다");
      }

      공공 무효 SetLength를 (더블 렌)
      {
         길이 = 렌;
      }
      공공 더블 getLength ()
      {
         길이를 반환;
      }

      정적 무효 메인 (문자열 []에 인수)
      {
         라인 라인 = 새로운 라인 ();    
         (6.0) 라인 길이 line.setLength을 설정 //;
         Console.WriteLine ( "라인의 길이 : {0}", line.getLength ());
         Console.ReadKey ();
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

생성 된 객체의 선 길이 : 6

기본 생성자는 매개 변수가 없습니다.당신이 인수를 할 수있는 매개 변수와 함께 생성자가 필요하지만,이 생성자는매개 변수가있는 생성자라고합니다.이 기술은 객체가 초기 값을 지정하려면 다음과 같은 구체적인 예를 참조하면서 개체를 만들 수 있습니다 :

시스템을 이용하여;
네임 스페이스 LineApplication
{
   클래스 라인
   {
      개인 더블 길이, 라인 공중 회선 (더블 렌)의 // 길이 // 매개 변수가있는 생성자 {
         Console.WriteLine ( "개체가 생성 된, 길이 = {0}", 렌);
         길이 = 렌;
      }

      공공 무효 SetLength를 (더블 렌)
      {
         길이 = 렌;
      }
      공공 더블 getLength ()
      {
         길이를 반환;
      }

      정적 무효 메인 (문자열 []에 인수)
      {
         라인 라인 = 새로운 라인 (10.0);
         Console.WriteLine ( "라인의 길이 : {0}", line.getLength ()); 
         (6.0) 라인 길이 line.setLength을 설정 //;
         Console.WriteLine ( "라인의 길이 : {0}", line.getLength ()); 
         Console.ReadKey ();
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

객체 생성 된, 길이 = 10
선 길이 : 10
선 길이 : 6

C #을 소멸자에서

개체 유형이 범위를 벗어날 경우 클래스소멸자 특별한 클래스 멤버 함수이다.

이름 소멸자가 접두사로 물결 (~)와 클래스의 이름 앞에, 그것은이 매개 변수를 사용하지 않는, 값을 반환하지 않습니다.

프로그램의 종료에 대한 소멸자 자원의 출시에 앞서 (등, 사용 가능한 메모리에 파일을 닫는 등). 소멸자는 상속 또는 오버로드 할 수 없습니다.

다음의 예는 소멸자의 개념을 설명합니다 :

시스템을 이용하여;
네임 스페이스 LineApplication
{
   클래스 라인
   {
      개인 더블 길이, 라인 공공 라인의 // 길이 () // 생성자 {
         Console.WriteLine는 ( "개체가 생성되었습니다");
      }
      ~ 라인 () // 소멸자 {
         Console.WriteLine는 ( "개체가 삭제되었습니다");
      }

      공공 무효 SetLength를 (더블 렌)
      {
         길이 = 렌;
      }
      공공 더블 getLength ()
      {
         길이를 반환;
      }

      정적 무효 메인 (문자열 []에 인수)
      {
         라인 라인 = 새로운 라인 ();
         (6.0) 라인 길이 line.setLength을 설정 //;
         Console.WriteLine ( "라인의 길이 : {0}", line.getLength ());           
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

생성 된 객체의 선 길이 : 6
삭제 된 개체 

C #을 정적 멤버 클래스

우리는 키워드정적 클래스 멤버 정적 선언 사용할 수 있습니다.우리가 선언 할 때 클래스 멤버는 많은 클래스 객체가 생성되는 방법에 상관없이, 정적 멤버의 사본이 있다는 것을 의미 정적이다.

만 키워드정적의 구성원의 한 인스턴스는 그 클래스를 의미한다.그 값이 수득 클래스 클래스의 인스턴스를 생성 할 필요없이 직접 호출 할 수 있기 때문에 정적 변수, 상수를 정의하는 데 사용된다. 정적 변수는 외부 부재 함수 또는 클래스의 정의에서 초기화 될 수있다. 또한 클래스 내에서 정의 된 정적 변수를 초기화 할 수 있습니다.

다음 예는정적 변수의 사용을 보여줍니다

시스템을 이용하여;
네임 스페이스 StaticVarApplication
{
    클래스 StaticVar
    {
       공공 정적 INT의 납입;
        공공 무효의 수 ()
        {
            납입 ++;
        }
        공공 INT의 getNum ()
        {
            NUM을 반환;
        }
    }
    클래스 StaticTester
    {
        정적 무효 메인 (문자열 []에 인수)
        {
            StaticVar S1 = 새로운 StaticVar ();
            StaticVar S2 = 새로운 StaticVar ();
            s1.count ();
            s1.count ();
            s1.count ();
            s2.count ();
            s2.count ();
            s2.count ();         
            Console.WriteLine ( "S1 변수 NUM : {0}", s1.getNum ());
            Console.WriteLine ( "S2 변수 NUM : {0}", s2.getNum ());
            Console.ReadKey ();
        }
    }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

S1 변수 NUM : 6
S2 변수 NUM : 6

또한멤버 함수가 static으로선언 넣을 수있습니다.이러한 함수는 정적 변수에 액세스 할 수 있습니다. 개체가 만들어 정적 기능을하기 전에, 그것은 존재한다. 다음의 예는정적 함수를 사용하는 방법을 보여줍니다 :

시스템을 이용하여;
네임 스페이스 StaticVarApplication
{
    클래스 StaticVar
    {
       공공 정적 INT의 납입;
        공공 무효의 수 ()
        {
            납입 ++;
        }
        공공 정적 INT getNum ()
        {
            NUM을 반환;
        }
    }
    클래스 StaticTester
    {
        정적 무효 메인 (문자열 []에 인수)
        {
            StaticVar들 = 새로운 StaticVar ();
            s.count ();
            s.count ();
            s.count ();                   
            Console.WriteLine ( "변수 NUM : {0}", StaticVar.getNum ());
            Console.ReadKey ();
        }
    }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

변수 NUM : 3