반응형
실습) 다음 내용에 맞게 형식을 정의하시오. 상품 |
*2019년 공주대에서 |
Product.cs
using System;
namespace 상품과_할인_상품
{
class Product
{
/* 속성 get 블럭에서 멤버 필드 값을 반환하고
* 속성 set 블럭에서 멤버 필드 값을 설정하며
* 이 외에 다른 행위가 없다면 자동 속성으로 정의할 수 있다.*/
#region 이름을 멤버 필드와 멤버 속성으로 표현
//string name;//상품 이름
//public string Name
//{
// get
// {
// return name;
// }
// private set
// {
// name = value;
// }
//}
#endregion
public string Name
{
get;
private set;
}
#region 상품 가격을 멤버 필드와 멤버 속성으로 표현
//int price;//상품 가격
//public int Price
//{
// get
// {
// return price;
// }
// private set
// {
// price = value;
// }
//}
#endregion
public int Price
{
get;
private set;
}
public Product(string name,int price)
{
Name = name;
Price = price;
}
public override string ToString()
{
return Name;
}
//GetSalePrice처럼 명명하여 혼돈을 피하면 더 좋은 코드라고 생각함
public virtual int GetPrice()
{
return Price;
}
}
}
DiscountProduct.cs
namespace 상품과_할인_상품
{
class DiscountProduct:Product
{
public int Discount
{
get;
private set;
}
public DiscountProduct(string name, int price,int discount):base(name,price)
{
Discount = discount;
}
public override string ToString()
{
return string.Format("할인 상품 ")+base.ToString();
}
public override int GetPrice()
{
return Price * (100 - Discount) / 100;
}
}
}
Program.cs
using System;
namespace 상품과_할인_상품
{
class Program
{
static void Main(string[] args)
{
Product[] proes = new Product[2];
proes[0] = new Product("지우개", 1000);
proes[1] = new DiscountProduct("지울까",1000,30);
Console.WriteLine(proes[0]);
Console.WriteLine(proes[1]);
Console.WriteLine(proes[0].Price);
Console.WriteLine(proes[1].Price);
Console.WriteLine(proes[0].GetPrice());
Console.WriteLine(proes[1].GetPrice());
ViewDiscountInfo(proes[0] as DiscountProduct);
ViewDiscountInfo(proes[1] as DiscountProduct);
}
private static void ViewDiscountInfo(DiscountProduct dp)
{
if(dp != null)
{
Console.WriteLine("{0} 할인율:{1}",dp, dp.Discount);
}
}
}
}
반응형
'언어 자료구조 알고리즘 > 프로그래밍 실습' 카테고리의 다른 글
[C# 실습] 반도체 장비 관리 프로그램 (0) | 2020.09.21 |
---|---|
[C#] 컬렉션(Dictionary) 실습 - 도서 관리 프로그램 (0) | 2019.08.10 |
[C#] 상속과 다형성, 인터페이스 실습 - 도형 (0) | 2019.08.10 |
[C#] 컬렉션 실습 - IList 인터페이스 구현 약속한 컬렉션 (0) | 2019.08.09 |
[C#] 상속과 다형성 실습 - 학생, 학사학생, 마법학생, 운동학생 (0) | 2019.08.09 |
[C#] 상속과 다형성 실습 - 밴드(음악가, 피아니스트, 드러머) (0) | 2019.08.08 |
[C#] 캡슐화 - 학생 클래스 정의, 인덱서 포함 (0) | 2019.08.08 |
[C#] 캡슐화 실습 - 학생 클래스 (0) | 2019.08.08 |
[C#] 캡슐화 실습 - 복소수 정의(멤버 필드와 멤버 속성) (0) | 2019.08.08 |
[C#] 제어문 - 퀴즈 abc + cca = 1ab2 (0) | 2019.08.08 |