C 언어
이 자습서에서는 예제를 통해 C# 생성자와 해당 유형에 대해 알아봅니다.
C#에서 생성자는 클래스의 개체가 생성될 때 호출되는 메서드와 유사합니다.
그러나 메소드와 달리 생성자는 다음과 같습니다.
C#에서 생성자를 만드는 방법은 다음과 같습니다.
class Car {
// constructor
Car() {
//code
}
}
여기, Car() 생성자입니다. 클래스와 이름이 같습니다.
생성자 호출
생성자를 생성하면 new
를 사용하여 호출할 수 있습니다. 예어. 예를 들어,
new Car();
C#에서는 클래스의 개체를 만들려고 할 때 생성자가 호출됩니다. 예를 들어,
Car car1 = new Car();
여기에서는 Car()를 호출합니다. car1 객체를 생성하는 생성자 . 개체에 대해 자세히 알아보려면 C# 클래스 및 개체를 방문하세요.
<시간>다음과 같은 유형의 생성자가 있습니다.
매개변수가 없는 생성자를 만들 때 매개변수가 없는 생성자라고 합니다. 예를 들어,
using System;
namespace Constructor {
class Car {
// parameterless constructor
Car() {
Console.WriteLine("Car Constructor");
}
static void Main(string[] args) {
// call constructor
new Car();
Console.ReadLine();
}
}
}
출력
Car Constructor
위의 예에서 Car()라는 생성자를 만들었습니다. .
new Car();
new
을 추가하여 생성자를 호출할 수 있습니다. 생성자 이름에 키워드.
C#에서 생성자는 매개변수도 받아들일 수 있습니다. 매개변수화된 생성자라고 합니다. 예를 들어,
using System;
namespace Constructor {
class Car {
string brand;
int price;
// parameterized constructor
Car(string theBrand, int thePrice) {
brand = theBrand;
price = thePrice;
}
static void Main(string[] args) {
// call parameterized constructor
Car car1 = new Car("Bugatti", 50000);
Console.WriteLine("Brand: " + car1.brand);
Console.WriteLine("Price: " + car1.price);
Console.ReadLine();
}
}
}
출력
Brand: Bugatti Price: 50000
위의 예에서 Car()라는 생성자를 만들었습니다. . 생성자는 두 개의 매개변수를 사용합니다. theBrand 및 가격 .
진술을 주목하십시오.
Car car1 = new Car("Bugatti", 50000);
여기서는 두 값을 생성자에 전달합니다.
생성자에 전달된 값을 인수라고 합니다. 매개변수와 동일한 수와 유형의 값을 전달해야 합니다.
<시간>클래스에 생성자를 정의하지 않은 경우 C#은 자동으로 빈 코드와 매개 변수가 없는 기본 생성자를 만듭니다. 예를 들어,
using System;
namespace Constructor {
class Program {
int a;
static void Main(string[] args) {
// call default constructor
Program p1 = new Program();
Console.WriteLine("Default value of a: " + p1.a);
Console.ReadLine();
}
}
}
출력
Default value of a: 0
위의 예에서는 Program에 생성자를 만들지 않았습니다. 수업. 그러나 객체를 생성하는 동안 생성자를 호출합니다.
Program p1 = new Program();
여기서 C#은 기본 생성자를 자동으로 만듭니다. 기본 생성자는 초기화되지 않은 모든 변수를 기본값으로 초기화합니다.
따라서 0을 얻습니다. int
값으로 변수 a .
참고 :기본 생성자에서 모든 숫자 필드는 0으로 초기화되지만 문자열과 객체는 null로 초기화됩니다.
<시간>복사 생성자를 사용하여 다른 개체에서 데이터를 복사하여 개체를 만듭니다. 예를 들어,
using System;
namespace Constructor {
class Car {
string brand;
// constructor
Car (string theBrand) {
brand = theBrand;
}
// copy constructor
Car(Car c1) {
brand = c1.brand;
}
static void Main(string[] args) {
// call constructor
Car car1 = new Car("Bugatti");
Console.WriteLine("Brand of car1: " + car1.brand);
// call the copy constructor
Car car2 = new Car(car1);
Console.WriteLine("Brand of car2: " + car2.brand);
Console.ReadLine();
}
}
}
출력
Brand of car1: Bugatti Brand of car2: Bugatti
위의 프로그램에서는 복사 생성자를 사용했습니다.
Car(Car c1) {
brand = c1.brand;
}
여기에서 이 생성자는 Car 객체를 받아들입니다. 매개변수로. 따라서 car2를 생성할 때 개체, 우리는 car1을 전달했습니다 객체를 복사 생성자에 대한 인수로 사용합니다.
Car car2 = new Car(car1);
복사 생성자 내에서 brand 값을 할당했습니다. car1용 브랜드에 대한 반대 car2 변수 물체. 따라서 두 개체 모두 brand의 동일한 값을 갖습니다. .
<시간>
private
을 사용하여 개인 생성자를 만들 수 있습니다. 액세스 지정자. 이것은 C#에서 private 생성자로 알려져 있습니다.
생성자가 private로 선언되면 다른 클래스에서 해당 클래스의 개체를 만들 수 없습니다.
using System;
namespace Constructor {
class Car {
// private constructor
private Car () {
Console.WriteLine("Private Constructor");
}
}
class CarDrive {
static void Main(string[] args) {
// call private constructor
Car car1 = new Car();
Console.ReadLine();
}
}
}
위의 예에서 개인 생성자 Car()를 만들었습니다. . private 멤버는 클래스 외부에서 접근할 수 없기 때문에 Car 객체를 생성하려고 할 때
// inside CarDrive class
Car car1 = new Car();
오류가 발생합니다.
error CS0122: 'Car.Car()' is inaccessible due to its protection level
참고 :생성자가 private이면 클래스의 객체를 생성할 수 없습니다. 따라서 클래스의 모든 필드와 메서드는 클래스 이름을 사용하여 액세스할 수 있도록 static으로 선언되어야 합니다.
<시간>
C#에서는 생성자를 정적으로 만들 수도 있습니다. static
을 사용합니다. 정적 생성자를 만드는 키워드입니다. 예를 들어,
using System;
namespace Constructor {
class Car {
// static constructor
static Car () {
Console.WriteLine("Static Constructor");
}
// parameterless constructor
Car() {
Console.WriteLine("Default Constructor");
}
static void Main(string[] args) {
// call parameterless constructor
Car car1 = new Car();
// call parameterless constructor again
Car car2 = new Car();
Console.ReadLine();
}
}
}
위의 예에서는 정적 생성자를 만들었습니다.
static Car () {
Console.WriteLine("Static Constructor");
}
정적 생성자를 직접 호출할 수 없습니다. 그러나 일반 생성자를 호출하면 정적 생성자가 자동으로 호출됩니다.
Car car1 = new Car();
여기에서는 Car()를 호출합니다. 건설자. 정적 생성자도 일반 생성자와 함께 호출되는 것을 볼 수 있습니다.
출력
Static Constructor Default Constructor Default Constructor
정적 생성자는 프로그램 실행 중에 한 번만 호출됩니다. 그래서 생성자를 다시 호출하면 일반 생성자만 호출됩니다.
참고 :클래스에는 정적 생성자가 하나만 있을 수 있습니다. 매개변수나 액세스 수정자를 가질 수 없습니다.
<시간>C#에서는 클래스에 두 개 이상의 생성자를 만들 수 있습니다. 생성자 오버로딩이라고 합니다. 예를 들어,
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 constructor with no parameter
Car car = new Car();
Console.WriteLine();
// call constructor with parameter
Car car2 = new Car("Bugatti");
Console.ReadLine();
}
}
}
출력
Car constructor Car constructor with one parameter Brand: Bugatti
위의 예에서 우리는 Car를 오버로드했습니다. 생성자:
생성자 호출 시 전달된 인수의 개수에 따라 해당 생성자가 호출됩니다.
여기,
자세한 내용은 C# 생성자 오버로딩을 참조하세요.
C 언어
자동차 산업은 그 어느 때보다 호황을 누리고 있습니다. 올해 이미 미국 전역의 공장에서 1,300만 대가 넘는 자동차가 생산되었습니다. 이 숫자에는 전 세계에서 생산되는 수백만 대의 자동차도 포함되지 않습니다. 제조업체는 몇 년마다 새 모델을 원하는 자동차 구매자의 요구를 어떻게 따라갈 수 있습니까? 답은 간단합니다. 바로 로봇 자동화입니다. 자동화된 로봇 시스템을 사용하여 차량 프레임, 펜더 및 하체뿐만 아니라 생산 중 차량의 기타 부품에 대한 모든 종류의 자동차 작업을 수행할 수 있습니다. 생산이 지루하고 느려지던 다른 자동차
중부 오하이오에 사는 사람들이 자동차 제조를 생각할 때 가장 먼저 생각나는 곳은 큰 Honda America 제조 공장이 있는 오하이오의 작은 마을인 Marysville입니다. Marysville의 Honda 공장은 Honda Accord 및 Acura TL 건설을 담당합니다. 이 회사는 현재 30년이 넘었고 Marysville 공장에서 8세대에 걸쳐 제작된 Honda Accord를 특별히 제작하기 위해 1982년 Marysville에 왔습니다. Honda와 같은 회사는 산업용 로봇의 가장 큰 구매자 중 일부입니다. 로봇은 수십