생성자 메서드?
class 내부에 정의된 특수한 메서드
생성자?
이름이 해당 형식의 이름과 동일한 메서드
메서드 이름과 매개 변수 목록만 포함되고
반환 형식은 포함되지 않는다
클래스 정의
class Car
{
}
생성자 메서드 정의
class Car
{
Car()
{
}
}
일반 메서드는 정의 후 호출을 통해 실행된다.
생성자 메서드는 객체생성시 자동으로 호출된다
생성자를 통해 맴버변수의 기본값을 설정할 수 있다
매개변수가 있는 생성자 => 객체 생성시 값을 전달
예를들어 자동차 객체를 생성할 때 자동차 이름을 전달
생성자는 클래스안에 정의된 특수한 메서드
반환 타입이 없으며 이름이 클래스명과 동일한 메서드
인스턴스가 생성된 후 자동으로 호출
매개변수가 있는 생성자도 있다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step31
{
internal class Car
{
public string name; //맴버 변수
//생성자 메서드는 클래스의 이름과 동일
//외부로부터 전달된 인수(문자열값은) 매개변수
//carName에 할당된다.
public Car(string carName)
{
//생성자에 반환 타입을 작성해서는 안된다.
Console.WriteLine("생성자가 호출 됨");
//매개변수 출력
Console.WriteLine("매개변수 : {0}", carName);
//맴버변수 출력
Console.WriteLine("맴버변수 : {0}", name);
//생성자 메서드 호출이 완료되면
//매개변수의 값이 사라지므로
//매개변수의 값을 맴버변수에 할당
name = carName;
Console.WriteLine("맴버변수 : {0}", name);
//이렇게 할당된 맴버 변수는
//해당 객체의 수명동안 사라지지 않는다
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step31
{
internal class Program
{
static void Main(string[] args)
{
//인스턴스가 호출 된후
//인스턴의 생성자가 호출된다
//매개 변수가 있는 생성자일 경우 반드시 인수를 전달해야 한다
//new Car("싼타페");
//변수에 Car인스턴스 할당
Car car = new Car("싼타페");
//car변수의 속성 name 출력
Console.WriteLine(car.name);
}
}
}
'Study > C#' 카테고리의 다른 글
[C#] 점연산자 NullReferenceException (0) | 2024.05.30 |
---|---|
[C#] 맴버변수와 지역변수 (0) | 2024.05.29 |
[C#] 클래스와 new 연산자 (0) | 2024.05.29 |
[C#]메서드 반환타입 (0) | 2024.05.28 |
[C#] 메서드 매개 변수 (0) | 2024.05.28 |