[Unity] C# Class, 생성자(constructor) 정리
2023. 5. 2. 15:09ㆍC#
728x90
반응형
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApp3
{
public class Program
{
static void Main(string[] args)
{
Car car1 = new Car();
car1.CarName = "Mercedes";
car1.InstallEngine("V8");
car1.Vroom();
Car car2 = new Car();
car2.CarName = "Audi";
car1.InstallEngine("V6");
car2.Vroom();
Car car3 = new Car();
car3.CarName = "Honda";
car3.InstallEngine("V8");
car3.Vroom();
}
}
public class Car
{
public string CarName;
public int doorCount;
public string engineType;
public void Vroom()
{
Console.WriteLine($"The {CarName} engines have started! VROOOOOOOM!");
Console.ReadKey();
}
public void InstallEngine(string _engineType)
{
engineType = _engineType;
Console.WriteLine(engineType + " Was installed in the " + CarName);
Console.ReadKey();
}
}
}
위와 같이 각각의 변수에 해당 값을 넣어줄 수 있는데, 이렇게 되면 코드 줄이 너무 길어지는 상황이 발생할 수 있다.
생성자(constructor)를 넣으면 조금 간결하게 나타낼 수 있게 된다.
namespace Classes;
public class BankAccount
{
public string Number { get; }
public string Owner { get; set; }
public decimal Balance { get; }
public void MakeDeposit(decimal amount, DateTime date, string note)
{
}
public void MakeWithdrawal(decimal amount, DateTime date, string note)
{
}
생성자의 예시. 생성자 이름 옆에 변수를 나열 할 수 있다.
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApp3
{
public class Program
{
static void Main(string[] args)
{
Car car1 = new Car("Mercedes", "V8");
Car car2 = new Car("Audi", "V6");
Car car3 = new Car("Honda", "V8");
Car car4 = new Car("Toyota", "V6", 4);
}
}
public class Car
{
public string CarName;
public int doorCount;
public string engineType;
public Car()
{
Console.WriteLine("No parameters were given, this is blank car");
}
public Car(string name, string _engineType)
{
CarName = name;
InstallEngine(_engineType);
Vroom();
}
public Car(string name, string _engineType, int doorCount)
{
Console.WriteLine("Executed 4 door code");
Console.ReadKey();
}
public void Vroom()
{
Console.WriteLine($"The {CarName} engines have started! VROOOOOOOM!");
Console.ReadKey();
}
public void InstallEngine(string _engineType)
{
engineType = _engineType;
Console.WriteLine(engineType + " Was installed in the " + CarName);
Console.ReadKey();
}
}
}
- 생성자의 오버로딩이 가능하여 같은 이름을 가진 생성자를 만들 수 있다.
- car1, car2, car3, car4 이름을 정의할 때 괄호 안에 값을 넣어주면 해당하는 생성자에 맞게 들어간다.
car4는 이름, 엔진, 도어 수가 포함된 값이므로 int doorCount가 포함된 세번째 public Car 생성자로 가서 "Executed 4 door code"를 출력하게 된다.
- car1, car2, car3, car4 이름을 정의할 때 괄호 안에 값을 넣어주면 해당하는 생성자에 맞게 들어간다.
- 클래스 이름과 같은 이름으로 생성자를 지정한다.
- public class Car -> public Car
728x90
반응형
'C#' 카테고리의 다른 글
[C#] 콘솔과 유니티에서 숫자 입력값 받기 (0) | 2023.08.02 |
---|---|
[C#] bool과 long의 형태 (0) | 2023.08.01 |
[C#] 컴퓨터 구조 입문(High/Low Level, 메모리, 함수의 구현/호출부, delegate) (0) | 2023.07.07 |
[C#] 함수의 입출력 (0) | 2023.07.06 |
[C#] int와 float의 형변환과 연산 (0) | 2023.06.29 |