Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с наследованием 
V
    Опции темы
kuller
Дата 31.3.2009, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



Здравствуйте!!!

Вот мой код:

Код

    public class Rabotnik
    {
        protected string fio = "";
        protected string specialnost = "";
        protected int razryad = 0;

        public string FIO
        {
            get { return fio; }
            set { fio = value; }
        }

        public string Specialnost
        {
            get { return specialnost; }
            set { specialnost = value; }
        }

        public int Razryad
        {
            get { return razryad; }
            set { razryad = value; }
        }
    }
    public class Brigada : Rabotnik
    {
        private string fio_brigadira = "";
        private string god_rojdeniya = "";
        private string telefon = "";

        public string FIO_BR
        {
            get { return fio_brigadira; }
            set { fio_brigadira = value; }
        }

        public string BirthDate
        {
            get { return god_rojdeniya; }
            set { god_rojdeniya = value; }
        }

        public string Phone
        {
            get { return telefon; }
            set { telefon = value; }
        }
    }


Есть вот класс Rabotnik и его наследник класс Brigada, как мне сделать, чтобы в классе Brigada наследовался типо МАССИВ объектов класса Rabotnik, ну т.е. есть РАБОЧИЙ ОДИН к примеру, и одна БРИГАДА, в которой 10 рабочих!!!!

Помоги пожалуйста это реализовать!
Заранее спасибо!!!
PM MAIL   Вверх
azesmcar
Дата 31.3.2009, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

Есть вот класс Rabotnik и его наследник класс Brigada, как мне сделать, чтобы в классе Brigada наследовался типо МАССИВ объектов класса Rabotnik, ну т.е. есть РАБОЧИЙ ОДИН к примеру, и одна БРИГАДА, в которой 10 рабочих!!!!


никак smile
запихни массив работников в один класс и наследуй от него, или делай композицию (т.е. запихни массив рабочих в свой класс)
PM   Вверх
kuller
Дата 31.3.2009, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



Цитата

запихни массив работников в один класс и наследуй от него



azesmcar, т.е. ИЗНАЧАЛЬНО в классе Rabotnik создать массив, а потом в классе Brigada наследовать класс Rabotnik, тем самым получится что наследую сразу МАССИВ объектов класса Rabotnik????
PM MAIL   Вверх
azesmcar
Дата 31.3.2009, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

azesmcar, т.е. ИЗНАЧАЛЬНО в классе Rabotnik создать массив, а потом в классе Brigada наследовать класс Rabotnik, тем самым получится что наследую сразу МАССИВ объектов класса Rabotnik???? 


в принципе получится..но это некрасиво. Зачем должна бригада наследовать от работника?
Создай класс Работник
Создай класс Бригада - содержащий массив работников
вот и все
PM   Вверх
kuller
Дата 31.3.2009, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



Цитата

Создай класс Работник
Создай класс Бригада - содержащий массив работников
вот и все 



azesmcar, если я сделаю так, то это уже будет ОТНОШЕНИЕ МЕЖДУ КЛАССАМИВЛОЖЕННОСТИ, я так делал ПЕРВУЮ часть этой лабораторной работы, а вот ВТОРАЯ часть предполагает, чтобы мы сделали ТОЖЕ САМОЕ ЗАДАНИЕ , но ОТНОШЕНИЕ МЕЖДУ КЛАССАМИНАСЛЕДОВАНИЕ!!!

Даже не знаю теперь как быть(((
PM MAIL   Вверх
azesmcar
Дата 31.3.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

вот ВТОРАЯ часть предполагает, чтобы мы сделали ТОЖЕ САМОЕ ЗАДАНИЕ , но ОТНОШЕНИЕ МЕЖДУ КЛАССАМИ- НАСЛЕДОВАНИЕ!!!


надуманные какие-то задания. ну да ладно, дали - надо решать
сделай класс Работник
сделай класс ГруппаРаботников, храни в нем массив работников
наследуй от класса ГруппаРаботников класс Бригада, добавь соответствующую функциональность

так пойдет?
PM   Вверх
kuller
Дата 31.3.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



Цитата

сделай класс ГруппаРаботников, храни в нем массив работников
наследуй от класса ГруппаРаботников класс Бригада, добавь соответствующую функциональность

так пойдет? 


думаю что пойдет, но вот в чем дело то еще:

Код

        public Brigada(string a, string b, int c, string d, string e, string f) : base(a, b, c)
        {
            FIO_BR = d;
            BirthDate = e;
            Phone = f;
        }

когда я вызываю конструктор к примеру класса Brigada, то там вот так вот : base(a, b, c) нужно ТИПО передать параметры классу РОДИТЕЛЮ, ну так вот если класс родитель будет СОДЕРЖАТЬ массив полей, то как тогда будет выглядить вот эта часть : base(a, b, c)????
PM MAIL   Вверх
azesmcar
Дата 31.3.2009, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

когда я вызываю конструктор к примеру класса Brigada, то там вот так вот : base(a, b, c) нужно ТИПО передать параметры классу РОДИТЕЛЮ, ну так вот если класс родитель будет СОДЕРЖАТЬ массив полей, то как тогда будет выглядить вот эта часть : base(a, b, c)???? 

есть другие способы, но не надо так делать. Примерно что-то вроде этого
Код

class Rabotnik
{
   public Rabotnik() {};
   private string name;
   private int age;
   //итд...
}

class GruppaRabotnikov
{
   public GruppaRabotnikov() {};
   public void AddRabotnik(string name, int age) {};
   public Rabotnik FindRabotnik(string name) {};
   //итд...
}

class Brigada : GruppaRabotnikov
{
   public Brigada() {};
   //итд...
}

Brigada p = new Brigada();
for (...)
   p.AddRabotnik(...);

PM   Вверх
kuller
Дата 31.3.2009, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



Цитата

Примерно что-то вроде этого

Капец, вот тупое задание!!!!
Блин ладно буду сейчас что то химичить((((


azesmcar, спасибо за идеи!
PM MAIL   Вверх
kuller
Дата 31.3.2009, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



А если я вот решил сделать вот так:

Код

    public class Rabotnik
    {
        public string fio;
        public string specialnost;
        public int razryad;
        public Rabotnik() { }
    }
    public class Gruppa_Rabotnokov
    {
        Rabotnik[] A = new Rabotnik[2];
    }

    public class Brigada: Gruppa_Rabotnokov
    {
        public string fio_brigadira;
        public string god_rojdeniya;
        public string telefon;
        public Brigada() { }
    }
    public class Gruppa_Brigad
    {
        Brigada[] B = new Brigada[2];
    }

    public class Otdel_kadrov: Gruppa_Brigad
    {

    }


у меня тут будеь МАСССИВ из 2-х бригад, в каждой из которых по 2 рабочих!!!

Как мне задать теперь конструктор класса public class Otdel_kadrov: Gruppa_Brigad???

PM MAIL   Вверх
azesmcar
Дата 31.3.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



kuller с классами как в жизни..при проектировании должа быть логика. Разве Отдел кадров это расширенный вариант Бригады? Зачем от него наследовать? Отдел кадров это класс, который занимается принятием на работу - Работников и Конструированием бригады (т.е. распределяет работников по бригадам..я вообще не вижу тут классов которые нужно наследовать). 

А насчет конструктора - сделай функцию которая будет добавлять, а параметры конструктора оставь пустыми
PM   Вверх
kuller
Дата 31.3.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



azesmcar, Мне преподаватель сказа сделать вот так:

Типо есть ПРЕДПРИЯТИЕ, в нем ЕСТЬ ОТДЕЛ КАДРОВ, хранящий количество БРИГАД, а БРИГАДЫ в свою очередь имеют НАЗВАНИЕ и ФИО_БРИГАДИРА, и также в КАЖДОЙ бригаде есть КАКОЕ-ЛИБО количество работников, которые в свою очередь имеют параметры ФИО, Должность, ну и там год рождения к примеру. Таким образом, мне нужно сделать 3 класса, образующие вот такое вот!!!
PM MAIL   Вверх
azesmcar
Дата 31.3.2009, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата

Типо есть ПРЕДПРИЯТИЕ, в нем ЕСТЬ ОТДЕЛ КАДРОВ, хранящий количество БРИГАД, а БРИГАДЫ в свою очередь имеют НАЗВАНИЕ и ФИО_БРИГАДИРА, и также в КАЖДОЙ бригаде есть КАКОЕ-ЛИБО количество работников, которые в свою очередь имеют параметры ФИО, Должность, ну и там год рождения к примеру. Таким образом, мне нужно сделать 3 класса, образующие вот такое вот!!! 


не вижу здесь чего-то, что бы указывало на использование наследования..он сказал что надо обязательно наследованием?
PM   Вверх
Partizan
Дата 31.3.2009, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



kuller

с классом Работник всё должно быть ясно - он элементарен...класс бригада не должен наследовать класс представляющий работника...он должен содержать в себе коллекцию работников


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
kuller
Дата 31.3.2009, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



Цитата

он сказал что надо обязательно наследованием? 


Да он сказал написать 2 программки:
1 - отношение классов ВЛОЖЕННОСТИ
2 - отношение классов НАСЛЕДОВАНИЕ

блин вот лажа, ничего не выходит((

Пытался вот так сделать, но он ругается (С#):

Код

    public class Rabotnik
    {
        public string fio;
        public string specialnost;
        public int razryad;
        public Rabotnik() { }
    }
    public class Gruppa_Rabotnokov
    {
        Rabotnik[] A = new Rabotnik[2];
        public Gruppa_Rabotnokov(string a1, string a2, int a3, string b1, string b2, int b3)
        {
            A[0].fio=a1;
            A[1].fio=b1;
            A[0].specialnost=a2;
            A[1].specialnost=b2;
            A[0].razryad=a3;
            A[1].razryad=b3;
        }
    }

    public class Brigada: Gruppa_Rabotnokov
    {
        public string fio_brigadira;
        public string god_rojdeniya;
        public string telefon;
        public Brigada(string a1, string a2, int a3, string b1, string b2, int b3)
            : base(a1, a2, a3, b1, b2, b3)
        {
            fio_brigadira = "";
            god_rojdeniya = "";
            telefon = "";
        }
    }
    public class Gruppa_Brigad
    {
        Brigada[] B = new Brigada[2];
        public Gruppa_Brigad(string a1, string a2, int a3, string b1, string b2, int b3, string c1, string c2, string c3, string d1, string d2, string d3)
            : base(a1, a2, a3, b1, b2, b3)
        {
            B[0].fio_brigadira = c1;
            B[1].fio_brigadira = d1;
            B[0].god_rojdeniya = c2;
            B[1].god_rojdeniya = d2;
            B[0].telefon = c3;
            B[1].telefon = d3;
        }
    }

    public class Otdel_kadrov: Gruppa_Brigad
    {
        public int kol_brigad;
        public Otdel_kadrov(string a1, string a2, int a3, string b1, string b2, int b3, string c1, string c2, string c3, string d1, string d2, string d3)
            : base(a1, a2, a3, b1, b2, b3, c1, c2, c3, d1, d2, d3)
        {
            kol_brigad = 2;
        }
    }

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1201 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.