using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step32
{
internal class Car
{
public string name;
public float speed;
public Car(string carName)
{
name = carName;
Console.WriteLine("{0}이(가) 자동차가 생성되었습니다", carName);
}
public void Move(float moveSpeed)
{
speed = moveSpeed;
Console.WriteLine("{0}속도로 이동합니다", moveSpeed);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Step32
{
internal class Car
{
public string name;
public float speed;
public Car(string carName)
{
name = carName;
Console.WriteLine("{0}이(가) 자동차가 생성되었습니다", carName);
}
public void Move(float moveSpeed)
{
speed = moveSpeed;
Console.WriteLine("{0}속도로 이동합니다", moveSpeed);
}
}
}
생성자는 클래스안에 정의된 특수한 메서드 반환 타입이 없으며 이름이 클래스명과 동일한 메서드 인스턴스가 생성된 후 자동으로 호출 매개변수가 있는 생성자도 있다.
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);
}
}
}