Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
4 / 4 / 0
Регистрация: 14.05.2012
Сообщений: 116
1

Отношения между классами

03.11.2013, 14:00. Показов 2195. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята, всем привет!!! Мне очень нужна ваша помощь!!! Необходимо разработать класс Car. Добавить в класс 3 поля: марка автомобиля, цвет автомобиля (использовать перечисление), стоимость автомобиля (предусмотреть модификаторы доступа к полям). Добавить методы в класс, позволяющие изменять марку, цвет и стоимость автомобиля. Создать класс Truck, унаследовать методы от класса Car и переопределить по своему усмотрению.
Пожалуйста, помогите мне!!! Если можно с комментариями. Заранее большое спасибо!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2013, 14:00
Ответы с готовыми решениями:

Random между классами
Пожалуйста, можете накинуть идею, как реализовать данную задачу. Существует 6 классов, которые...

Передача между классами
Имеются 2 класса Kisti.cs и Form1.cs Вот содержимое Kisti.cs: class Kisti { ...

Связи между классами
Всем привет:) Друзья подскажите пожалуйста если Я передаю обьект в метод, какая это связь? ...

Передача строк между классами
Здравствуйте. Возникла проблема в формировании логов. Имеется приложение, с кучей форм, классов....

6
13 / 13 / 11
Регистрация: 20.01.2013
Сообщений: 28
03.11.2013, 14:09 2
Ну можно так. Если я правильно всё понимаю.
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
        public class Car
        {
            //Марки
            public enum Mark
            {
                BMW, Mercedes, Audi
            }
 
            //Цвета
            public enum ColorAuto
            {
                Red, Green, Blue
            }
 
            //Марка по умолчанию
            private Mark DefaultMark = Mark.Audi;
 
            //Цвет по умолчанию
            private ColorAuto DefaultColor = ColorAuto.Blue;
 
            //Стоимость
            public float CostAuto { get; set; }
 
            //Изменение марки
            public void EditMark(Mark newMark)
            {
                DefaultMark = newMark; //Меняем марку по умолчанию - на новую
            }
 
            //Изменение цвета
            public void EditColor(ColorAuto newColor)
            {
                DefaultColor = newColor; //Меняем цвет по умолчанию - на новый
            }
        }
 
        //Создаём класс Truck.
        public class Truck : Car
        {
            //Назначаем новую машину
            public void SetNewCar()
            {
                this.CostAuto = 10000; //Стоимость
                this.EditColor(ColorAuto.Green); //Цвет
                this.EditMark(Mark.BMW); //Марка
            }
        }
1
4 / 4 / 0
Регистрация: 14.05.2012
Сообщений: 116
03.11.2013, 14:14  [ТС] 3
Да, это подойдет, спасибо, а можете, пожалуйста Main дописать? Заранее большое спасибо
0
13 / 13 / 11
Регистрация: 20.01.2013
Сообщений: 28
03.11.2013, 15:21 4
А это вы уже сами. Тут делов на пару строк. Стоит всего лишь чуточку подумать.
0
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
03.11.2013, 15:39 5
имхо, так будет правильней:
Код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
using System;
 
public class Auto
{
  public enum Make
  {
    Mercedes, 
    BMW,
    Audi,
    Lada,
    Kamaz,
    Belaz
  }
  
  public enum Color
  {
    Red,
    Green,
    Blue,
    Maroon
  }
  
  public virtual Make CarMake { get; set; }
  public virtual Color CarColor { get; set; }
  public virtual double CarCost { get; set; }
  
  public Auto()
  {
  }
  
  public Auto(Make make, Color color, double cost)
  {
    CarMake = make;
    CarColor = color;
    CarCost = cost;
  }
  
  public override string ToString()
  {
    return string.Format("Машина '{0}' цвета '{1}' стоимостью {2}", CarMake, CarColor, CarCost);
  }
}
 
public class Truck : Auto
{
  private Make _make;
  
  // добавим еще одно свойство
  public int WheelCount { get; set; }
  
  // переопределяем свойство "марка"
  public override Make CarMake
  {
    get
    {
      return _make;
    }
    set
    {
      switch(value)
      {
        case Make.Kamaz:
    case Make.Belaz:
      _make = value;
      break;
          
    default:
      throw new Exception("Таких грузовиков не бывает!");
       }
    }
  }
  
  public Truck() : base()
  {
  }
  
  public Truck(Make make, Color color, double cost, int wheelCount) : base(make, color, cost)
  {
    WheelCount = wheelCount;
  }
  
  public override string ToString()
  {
    return string.Format("Грузовик '{0}' цвета '{1}' ценой в {2} с кол-вом колес {3}", CarMake, CarColor, CarCost, WheelCount);
  }
}
 
public class Program
{
  public static void Main(string[] args)
  {
    try
    {
      var a = new Auto(Auto.Make.BMW, Auto.Color.Green, 14000);
      var b = new Truck(Auto.Make.Kamaz, Auto.Color.Maroon, 18000, 8);
    
      Console.WriteLine(a);
      Console.WriteLine(b);
    }
    catch(Exception e)
    {
      Console.WriteLine(e.Message);
    }
  }
}


Не по теме:

ненавижу табы и ide которые их вставляют.
почему нельзя вот просто так взять и использовать пробелы?

1
MrCirwos
03.11.2013, 15:54
  #6

Не по теме:


Ну это для каждого своё. Кто-то пробелы ставит, кто-то ставит табы. Вам не нравятся табы, а вот мне не нравятся пробелы постоянно ставить. =))

0
lpvoid
03.11.2013, 16:05     Отношения между классами
  #7

Не по теме:

MrCirwos, никто вас не заставляет тыкать в пробел, иде должна сама вставлять их нужное колво). а таб в каждом редакторе имеет свой размер в пробелах и плохо копируется, делая код бездарно выглядящим).

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2013, 16:05

Передача данных между классами
У меня такой вопрос можете кратко набросать код!!! Смотрите есть главная форма игра на ней таймер...

Перемещении между классами и методами
У меня есть 2 класса и 2 метода. Мне нужно, чтобы из одного он мог перейти в другой. Вот куски...

Передача данных между классами
Как перевести a.ToString() или же fff из public void getdata в void Fillcombo() для...

Передать переменную между классами
Кряхтеть пыхтеть, добренького вечера вам. Пытаюсь сообразить, правильно я сделал или нет. 1)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru