목차
Constructors (생성자)
Constructor Parameters (생성자 매개변수)
생성자 장점 : 시간 절약 (∵ 코드량 ↓)
Constructors (생성자)
객체 초기화에 사용 되는 특수 메서드.
※ 클래스의 객체가 생성될 때 호출됨 .
※ 객체 속성 초기값 설정에 사용 가능.
※ 클래스 이름과 일치해야함.
※ 반환 타입(예: void, int)을 가질 수 없음.
※ 모든 클래스엔 기본적으로 생성자가 있음.
※ 별도로 생성 안 하면, C#이 직접 생성.
※ C#이 생성자 생성 시, 초기값 설정 불가.
※ 생성자는 시간 절약해 줌. (맨 하단 참고)
[예제]
파일명: Hz.cs
using System;
namespace Homzzang
{
class Hz
{
public int x;
// Hz 클래스용 '클래스 생성자'.
public Hz ()
{
x = 3;
}
static void Main(string[] args)
{
Hz myObj = new Hz (); // 객체 생성 시 생성자 자동 호출됨.
Console.WriteLine(myObj.x); // 3
}
}
}
결과값: 3
Constructor Parameters (생성자 매개변수)
생성자는 속성 초기화 위한 매개변수를 원하는 만큼 가질 수 있음.
[예제1] - 매개변수 1개 경우.
파일명: Hz.cs
using System;
namespace Homzzang
{
class Hz
{
public int x;
public Hz(int y)
{
x = y;
}
static void Main(string[] args)
{
Hz myObj = new Hz(3);
Console.WriteLine(myObj.x); // 3
}
}
}
결과값: 3
[예제2] 매개변수 2개 경우.
※ 파일명: Hz.cs
using System;
namespace Homzzang
{
class Hz
{
public string host;
public int open;
public Hz(string hostName, int openYear)
{
host = hostName;
open = openYear;
}
static void Main(string[] args)
{
Hz my = new Hz("Homzzang.com", 2012);
Console.WriteLine(my.host + " (" + my.open + ")");
}
}
}
결과값: Homzzang.com (2012)
생성자 장점 : 시간 절약 (∵ 코드량 ↓)
생성자 사용하면 코드양 줄여 시간 절약 가능 .
즉, 생성할 객체 많을 시, 생성자 사용 코드가 훨씬 효율적.
[생성자 사용 X 경우]
1. Hz.cs
using System;
namespace Homzzang
{
class Member
{
public string id;
public string name;
public int level;
public void sayHello(string x)
{
Console.WriteLine(x + " 님, 반가워요.");
}
}
}
2. Index.cs
using System;
namespace Homzzang
{
class Index
{
static void Main(string[] args)
{
Member mb1 = new Member();
mb1.id = "sinbi";
mb1.name = "신비";
mb1.level = 2;
Member mb2 = new Member();
mb2.id = "sir";
mb2.name = "그누";
mb2.level = 3;
mb1.sayHello(mb1.name);
mb1.sayHello(mb2.name);
}
}
}
결과값:
신비 님, 반가워요.
그누 님, 반가워요.
[생성자 사용 O 경우]
1. Hz.cs
using System;
namespace Homzzang
{
class Member
{
public string id;
public string name;
public int level;
public Member(string mb_id, string mb_name, int mb_level)
{
id = mb_id;
name = mb_name;
level = mb_level;
}
public void sayHello(string x)
{
Console.WriteLine(x + " 님, 반가워요.");
}
}
}
2. Index.cs
using System;
namespace Homzzang
{
class Index
{
static void Main(string[] args)
{
Member mb1 = new Member("sinbi", "신비", 2);
Member mb2 = new Member("sir", "그누", 3);
mb1.sayHello(mb1.name);
mb2.sayHello(mb2.name);
}
}
}
결과값:
신비 님, 반가워요.
그누 님, 반가워요.
주소 복사
랜덤 이동
최신댓글