Как сделать класс полем другого класса? - C#
Формулировка задачи:
может я не так понял задание
Разработать класс, описывающий некоторый физический материал( вещество).
Поля:
имя,
плотность.
Конструкторы:
по умолчанию;
с параметрами.
Методы:
getters/setters;
ToString( ) – значения полей объекта в csv формат.
Пример:
steel;7850
Разработать класс, описывающий однородный предмет, состоящий из одного материала.
Поля:
имя,
материал (класс, разработанный выше),
объём.
Конструкторы:
по умолчанию;
с параметрами.
Методы:
getters/setters;
GetMass( ) – вычисление массы предмета (= плотность * объём);
ToString( ) – объект в строку в csv формате.
Пример:
wire;steel;7850;0.03;235.5
В методе Main(…) консольного приложения сделать следующее:
1 Создать объект Стальной_Провод из стали в объёме 0.03м3.
2 Вывести объект на консоль с использованием ToString( ).
3 Изменить материал провода на медь (плотность = 8500) и вывести на консоль его новую массу.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace zadanie2
{
class M : Vv
{
private string name; // имя
private Vv // тут должен быть класс
private decimal obiem;
}
class Vv
{
private string namev; // имя
private decimal plotnost; // плотность
public string Namev
{
get{return namev;}
set{namev = value;}
}
public Vv(string Namev, decimal Plotnost)
{
namev = Namev;
plotnost = Plotnost;
}
public Vv()
{
namev = "Empty";
plotnost = 0;
}
public decimal Plotnost
{
get { return plotnost; }
set { plotnost = value; }
}
static void Main(string[] args)
{
}
}
}Решение задачи: «Как сделать класс полем другого класса?»
textual
Листинг программы
class Material
{
private string name;
private double d;
public Material() { }
public Material(string newName,double newV)
{
D = newV;
Name = newName;
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public double D
{
get
{
return d;
}
set
{
d = value;
}
}
public override string ToString()
{
return string.Format("{0};{1}" , Name , D);
}
}
class Article
{
private Material material;
private double vol;
private string name;
public Article() { }
public Article(string articleName,double articleVolume,Material articleMaterial)
{
Mat = articleMaterial;
Name = articleName;
Vol = articleVolume;
}
public double Vol
{
get
{
return vol;
}
set
{
vol = value;
}
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public Material Mat
{
get
{
return material;
}
set
{
material = value;
}
}
public double GetMass()
{
return material.D * Vol;
}
public override string ToString()
{
return string.Format("{0};{1};{2};{3}" , Name , Mat.ToString() , Vol , this.GetMass());
}
}
class Program
{
static void Main(string[ ] args)
{
Article art = new Article("Steel wire" , 0.03 , new Material("Steel" , 7850));
Console.WriteLine(art.ToString());
art.Mat.Name = "Cuprum";
art.Mat.D = 8500;//Формально было бы лучше метод для смены материала сделать, но в условии этого не требуют.
Console.WriteLine(art.ToString());
}
}