c# ☃️
[C#] Setter/Getter - 자동 구현 속성
소로리 산적
2024. 5. 13. 01:44
구성

Car.cs
using System;
namespace Class1
{
public class Car
{
// private 필드는 데이터 저장할때 보통 사용됨
private string _name;
private int _hp;
private string _color;
//auto 구현 속성
public int MaxSpeed{ get; set; }
// the public property
// 데이터 필드를 공개하는 대신 속성을 이용해 통제된 엑세스 제공
public string Name {
get { return _name; } // get 액세스
set {
if( value == "" ) {
_name = "Default";
}
else
{
_name = value;
}
} // set 액세스
}
//Default 생성자
public Car()
{
_name = "Car";
_hp = 0;
_color = "red";
Drive();
}
//Partial Specification 생성자
public Car(string name, int hp = 0)
{
_name = name;
Console.WriteLine(name + " Car 클래스 생성 !");
_hp = 0;
_color = "red";
Drive();
}
// Full specification Contructor
public Car(string name, int hp, string color)
{
_name = name;
Console.WriteLine(name + " Car 클래스 생성 !");
_hp = hp;
_color = color;
Drive();
}
//member methods
//private가 되면 제한적
private void Drive()
{
Console.WriteLine(_name + " 운전중 =333");
}
public void Stop()
{
Console.WriteLine(_name + " 멈춤 'ㅅ'");
}
public void Details()
{
Console.WriteLine(_color +"색깔 차 : " + _name + ", 마력 : " + _hp);
}
}
}
Program.cs
namespace Class1;
class Program
{
static void Main(string[] args)
{
// 새 키워드는 새 인스턴스를 생성하는데 사용
// new 를 쓰면 새 객체를 위해 새 메모리 힙에 할당
//default constructor 실행
Car mycar = new Car();
mycar.MaxSpeed = 100;
Console.WriteLine("Max speed is " + mycar.MaxSpeed);
Console.ReadLine();
}
}
실행결과
