C#面向对象问题,可以请各位提供一下这题思路吗
问题描述:
设计一个电脑类, 字段: CPU, 主板, 硬盘, 内存, 显卡
CPU / 主板 / 硬盘 / 内存 / 显卡 都是单独的类,字段: 名称 / 价格
电脑类方法: 计算这个电脑的价格。
答
参考,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~
using System;
namespace ConsoleApplication1
{
public class Hardware
{
public string Name { get; set; }
public double Price { get; set; }
private int _Num = 1;
/// <summary>
/// 数量
/// </summary>
public int Num { get { return _Num; } set { if (value < 0) _Num = 1;_Num = value; } }
public double TotalPrice { get { return Price * Num; } }
}
public class Cpu : Hardware { }
public class MotherBoard : Hardware { }
public class HardDisk : Hardware { }
public class Memory : Hardware { }
public class GraphicsCard : Hardware { }
public class PC
{
public Cpu cpu { get; set; }
public MotherBoard motherBoard { get; set; }
public HardDisk hardDisk { get; set; }
public Memory memory { get; set; }
public GraphicsCard graphicsCard { get; set; }
public double GetPrice()
{
return cpu.TotalPrice + motherBoard.TotalPrice + hardDisk.TotalPrice + memory.TotalPrice + graphicsCard.TotalPrice;
}
}
class Program
{
static void Main(string[] args)
{
var pc = new PC
{
cpu = new Cpu { Price = 1, Name = "Intel" },
motherBoard = new MotherBoard { Price = 1, Name = "华硕" },
hardDisk = new HardDisk { Price = 1, Name = "三星HDD" },
memory = new Memory { Price = 1, Name = "金士顿8G", Num = 4 },
graphicsCard = new GraphicsCard { Price = 1, Name = "影驰" }
};
Console.WriteLine(pc.GetPrice());
Console.ReadKey();
}
}
}
答
根据题目意思,定义电脑类,以及电脑类中的cpu等类,cpu等类也作为电脑的属性,定义一个计算电脑价格的方法,方法内,即通过各个cpu等属性对象获取对应的价格,求和。
答
先定义CPU / 主板 / 硬盘 / 内存 / 显卡单独的类(甚至可以再设置一个基类)
然后再定义电脑类,添加字段
再在电脑类中定义一个计算价格的方法类,将价格作为参数传入,返回最终价格