산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C# 생성자 오버로딩

C# 생성자 오버로딩

이 기사에서는 예제를 통해 C#의 생성자 오버로딩에 대해 알아봅니다.

C#에서는 메서드 오버로딩과 유사하게 생성자를 오버로드할 수도 있습니다. 생성자 오버로딩의 경우 이름은 같지만 다른 생성자가 두 개 이상 있어야 합니다.

생성자 오버로딩에 대해 배우기 전에 C# 생성자에 대해 알아야 합니다.

<시간>

다음과 같은 방법으로 생성자 오버로딩을 수행할 수 있습니다.

1. 매개변수의 다른 수

생성자의 매개변수 수가 다른 경우 생성자를 오버로드할 수 있습니다.

 class Car {   

  Car() {
    ...
  }

  Car(string brand) {
    ...
  }
    
  Car(string brand, int price) {
    ...
  }

}

여기 Car 클래스에 세 개의 생성자가 있습니다. . 생성자의 매개변수 수가 다르기 때문에 둘 이상의 생성자가 있을 수 있습니다.

참고하세요.

예:매개변수 수가 다른 생성자 오버로딩

using System;

namespace ConstructorOverload {

  class Car {   
    
    // constructor with no parameter
    Car() {
      Console.WriteLine("Car constructor");
    }
     
    // constructor with one parameter
    Car(string brand) {
      Console.WriteLine("Car constructor with one parameter");
      Console.WriteLine("Brand: " + brand);
    }

    static void Main(string[] args) {

      // call with no parameter
      Car car = new Car();

      Console.WriteLine();

      // call with one parameter 
      Car car2 =  new Car("Bugatti");
     
      Console.ReadLine();
    }
  }
}

출력

Car constructor

Car constructor with one parameter
Brand: Bugatti

위의 예에서 우리는 Car를 오버로드했습니다. 생성자:

  1. 하나의 생성자에는 하나의 매개변수가 있습니다
  2. 다른 매개변수에는 두 개의 매개변수가 있습니다.

생성자 호출 시 전달된 인수의 개수에 따라 해당 생성자가 호출됩니다.

여기,

<시간>

2. 다양한 유형의 매개변수

class Car {   

  Car(string brand) {
    ...
   }

  Car(int price) {
    ...
  }
}

여기에 두 개의 자동차가 있습니다. 동일한 수의 매개변수를 가진 생성자. 매개변수 내부의 데이터 유형이 다르기 때문에 동일한 매개변수로 생성자를 생성할 수 있습니다.

참고하세요.

예:다양한 유형의 매개변수를 사용한 생성자 오버로딩

using System;

namespace ConstructorOverload {

  class Car {   
    
    // constructor with string parameter
    Car(string brand) {
      Console.WriteLine("Brand: " + brand);
    }

    // constructor  with int parameter
    Car(int price) {
      Console.WriteLine("Price: " + price);
    }

    static void Main(string[] args) {

      // call constructor  with string parameter
      Car car = new Car("Lamborghini");
      
      Console.WriteLine();

      // call constructor  with int parameter
      Car car2 =new Car(50000);
    
      Console.ReadLine();
    }
  }
}

출력

Brand: Lamborghini

Price: 50000

위의 프로그램에서 우리는 다른 유형의 매개변수로 생성자를 오버로드했습니다.

여기,

  1. 객체 자동차 - string로 생성자를 호출합니다. 유형 매개변수
  2. 객체 car2 - int으로 생성자를 호출합니다. 유형 매개변수
<시간>

3. 매개변수의 다른 순서

Car {

  Car(string brand, int price) {
    ...
  }

  Car(int speed, string color) {
    ... 
  }

}

여기에 동일한 수의 매개변수를 가진 두 개의 생성자가 있습니다. 이는 매개변수의 데이터 형식 순서가 다르기 때문에 가능합니다.

참고하세요.

예:매개변수의 순서가 다른 생성자 오버로딩

using System;

namespace ConstructorOverload {

  class Car {   
    
    // constructor with string and int parameter
    Car(string brand, int price) {

      Console.WriteLine("Brand: " + brand);
      Console.WriteLine("Price: " + price);
    }
    
    // constructor with int and string parameter
    Car(int speed, string color) {
      
      Console.WriteLine("Speed: " + speed + " km/hr");
      Console.WriteLine("Color: " + color);
    }
    static void Main(string[] args) {

      // call constructor  with string and int parameter
      Car car = new Car("Bugatti", 50000);
      
      Console.WriteLine();

      // call constructor with int and string parameter
      Car car2 =new Car(60, "Red");
    
      Console.ReadLine();
    }
  }
}

출력

Brand: Bugatti
Price: 50000

Speed: 60 km/hr
Color: Red

위의 프로그램에서 우리는 매개변수의 순서가 다른 생성자를 오버로드했습니다.

여기,

  1. 객체 자동차 - string으로 생성자를 호출합니다. 및 int 매개변수 각각
  2. 객체 car2 - int로 생성자를 호출합니다. 및 string 매개변수 각각

C 언어

  1. C# 생성자
  2. C# 중첩 클래스
  3. C# 메서드 오버로딩
  4. 파이썬 연산자 오버로딩
  5. 자바 생성자
  6. 자바 열거형 생성자
  7. 자동차 엔진 냉각수란 무엇입니까?
  8. 예제를 사용한 C++ 연산자 오버로딩
  9. Java의 생성자 오버로딩:프로그램의 정의 및 예제
  10. 자바 - 생성자