[C#] 생성자
2023. 10. 25. 17:05ㆍC#
728x90
반응형
클래스와 같은 이름의 특수한 메소드. 생성자는 반환 값이 없다.
필드 초기화 등에 이용한다.
- 인수가 없는 생성자
class A
{
public int a, b, c;
public A() //생성자
{
a = 0;
b = 0;
c = 0;
}
...
}
class TestA
{
...
A a = new A(); //객체 생성 = 생성자 호출
...
}
- 인수가 있는 생성자
class B
{
public int s, t;
public B(int a, int b) //생성자
{
s = a;
t = b;
}
}
class TestB
{
...
B b = new B(3, 4); //생성자에 전달하는 인수
...
}
예시
using System;
class Book
{
public int price;
public int num = 0;
public string title;
public Book(string t, int p) //생성자
{
title = t;
price = p;
}
public void print() //프린트 메소드
{
Console.WriteLine("제목" + title);
Console.WriteLine("정가" + price);
Console.WriteLine("주문부수" + num);
Console.WriteLine("합계금액" + price*num);
}
}
class Books
{
static void Main()
{
Book book = new Book("C 그림책", 14000);
book.num = 10;
book.print();
}
}
- 복사 생성자
public Book(Book copy)
{
num = copy.num
price = copy.price
}
예시
using System;
class Book
{
public string title;
public string writer;
public Book(string t, string w)
{
title = t;
writer = w;
}
public Book(Book copy)
{
title = copy.title;
writer = copy.writer;
}
public void print()
{
Console.WriteLine("제목: " + title);
Console.WriteLine("저자: " + writer);
}
}
class Books
{
static void Main()
{
Book book1 = new Book("그림책", "철수");
book1.print();
Book book2 = new Book(book1);
book2.title = "만화책";
book2.print();
}
}
728x90
반응형
'C#' 카테고리의 다른 글
[C#] static에 대한 정리 (0) | 2023.10.26 |
---|---|
[C#] 속성(feat. get, set), 인덱서 (0) | 2023.10.25 |
[C#] 필드와 지역 변수의 구별 (0) | 2023.10.25 |
[C#] 클래스의 소유와 참조 / 역참조와 상호 참조 / 자기 참조 (0) | 2023.08.10 |
[C#] 배열, 리스트와 유니티 예제 (0) | 2023.08.10 |