Изучаем ООПНадо создать класс с полями для хранения данных.Пусть класс будет называться Ученик. Полями будут Фамилия, Имя, класс.Допустим, что выводить эти данные будем в ДатаГридВью. А для ввода использовать текстбоксы.class Student{private string Surname, Name; private int NumClasspublic surname {get;set}public name {get;set}public numClass{get;set}}Это создали. Далее надо прописать пользовательский конструктор. А вот тут я поймал клина. Всмысле, а что там можно прописать? Какие данные использовать для инициализации? И как все это использовать на практике? Ну использовать правильно, имею ввиду.Как в основном коде создавать эти объекты, не на уровне лексики, а вот используя ООП правильно? Я не понимаю.Я вот сейчас просто создаю 1 объект, через текстбоксы присваиваю полям значения и записываю в датагридвью. Зачем мне конструкторы? И как делать правильно?
>>164560507 (OP)>Зачем мне конструкторы? И как делать правильно?
>>164560507 (OP)Язык c#
>>164560507 (OP)Не благодари
>>164560665Не благодарю.А смысл? Нет, ну я понимаю на таких примерах для чего они, но на моем не могу понять. Может я чего неверно делаю? И не так использую свой класс.
>>164560541ну поячсните как использовать эти классы и конструкторы вот на моем примере. Вот я не догоняю.
Конструктор нужен для удобства чтобы не вызывать дохуя функций и сразу в конструкторе все данные закинуть
>>164560507 (OP)Конструктор это структура определяющая состав класса при инициализации, копировании или удалении, для всего этого есть свои формы конструкторов. Если мы говорим о конструкторе по умолчанию, который указывает что и чем заполнять при создании экземпляра, например в твоем примере: class Student{private string Surname, Name; private int NumClasspublic surname {get;set}public name {get;set}public numClass{get;set}Student(){NumClass = 0; surname = "aaa";...}}Таким образом при создании экземпляра, эти две переменные по умолчанию будут заполнены этими данными. Чо с этим можно сделать? Ну например можно прописать конструктор с условиями, для того чтобы инициализировать экземпляр, вводя данные в мейне:class Student{private string Surname, Name; private int NumClasspublic surname {get;set}public name {get;set}public numClass{get;set}Student(){NumClass = 0; surname = "aaa";...}Student(int Num, string Nm, string Srn){NumClass = Num; Name = Nm; surname = Srn;}Таким образом , имея два конструктора появляется возможность создавать экземпляры классов с параметрами и без:int main(){ student stu(); // будет создан экземпляр класса, с использованием первого конструктора, т.е. NumClass = 0; surname = "aaa" student stu2(4, Masha, Ivanova); //будет создан экземпляр в котором значения номера класса, имени и фамилии будут заполненны данным в соотвествии с кодом конструктра с параметром.}
Вкатывальщики не нужны
>>164562062Ну а в моем случае? В моем конкретном примере? Для чего программисту может понадобиться вбивать данные: фамилия, имя, класс и тп в коде программы, если это делает пользователь? Как тут использовать конструктор?
>>164563581Ну смари, ты прописал конструктор как во втором примере Student(int Num, string Nm, string Srn){NumClass = Num; Name = Nm; surname = Srn; данные переменных Num, Nm, Srn будут вводиться пользователем с помощью интерфейса и дальше по твоему алгоритму сразу будет создан класс с такими параметрами
>>164562806Боишься что у тебя хлеб отберут талантливые и молодые?
>>164563926Ну типаclass Student{....Student(int Num, string Nm, string Srn){NumClass = Num; Name = Nm; surname = Srn;}int main(){...int Nm;string Nm;string Srn;cin>>Num>>Nm>>Srn;Student Stu1(Num, Nm, Srn);....return 0;}
>>164560507 (OP)ты просто ещё мало изучил, прочитай про паттерны. абстрактную фабрику, например, освой. так у тебя просто недостаточно знаний, чтоб сразу понять, как на практике применять ООП
>>164560507 (OP)Класс это образ того что ты хочешь создать, у него есть свойства Имя,фамилия.Когда ты задействуешь конструктор ты создаёшь объект класса, в нём уже прописано пользователем как он хочет чтобы выглядел этот объект:Student Ivan = new Student("Ivan", "Dolvich", 19); Это уже конкретный объект у которого есть свои характеристики, ты можешь их объединить в массив и назвать массив как группу, вывести имена всех студентов из группы итд.Ввод пользователя можно опять же проверять в конструкторе.
Ебанутая дура, не можешь = не дано. Иди грузчиком ебаш или на завод.
>>164563926погоди, погоди. Я вот класс использовал только для доступа к полям, чтобы записать в них то, что введет в текстбокс пользователь и потом в датагридвью эти данные взять и вывести. Ну т.е. создаем объект классаStudent Stud1 = new Student();Stud1.name = textBox1.Text; Вот записали в поле то, что пользователь ввел в текстбокс.Далее в датагрид вывели. И...и... Все. Где тут надо создать второй объект и для чего? Как тут использовать конструктор? Где я делаю неправильно?
>>164564976>в нём уже прописано пользователем как он хочетПогоди, а разве пользователь вот это прописывает?Student Ivan = new Student("Ivan", "Dolvich", 19); Это же не пользователь, а разработчик прописывает.
>>164565117Не слушай навозника не можешь = не хочешь. Как говорил мой препод, люди делятся на 3 типа , те кто понимают ООП сразу, таких 2% , те кто понимает но не запоминает, таких 97%, те кто не понимает, потому что не слушает это 1%. Врожденные таланты это бред, за всеми успешными людьми (кроме российских бизнесменов и чиновников) стоят годы упорного труда. Так что ебаш аноний, и будет дано тебе по заслугам твоим.
>>164565247Пользователь вводит эти данные через UI(textbox, combobox, datagreed..), на основе этого создаётся объект. А всё включая UI ты должен писать ручками
>>164565177ты уже заебал тупить конечно, но я готов помогать тебе, пушто сам тупил поболе твоего.string name = textBox1.Text;string surname = textBox2.Text;Student Stud = new Student (name, surname);
>>164560507 (OP)опять ты?
Ну всмысле я понимаю, что вот этоStudent Ivan = new Student("Ivan", "Dolvich", 19);Создает новый объект и записывает в поля не 0 и "", а те значения, которые передаются. Но я не понимаю на практике для чего это? Вот конкретно эта конструкция, к примеру:Student Ivan = new Student("Ivan", "Dolvich", 19);Зачем создавать ее? К тому же, если мы изначально не знаем, какие данные будут введены в поля. Их вводят уже потом из текстбокса.
>>164565524знаток анальных пробок?
>>164565572Мудила, блядь, получи данные из текстбоксов своих и потом создай с ними объект.
>>164565572Пушто иногда бывает, что нужно заполнять экземпляры одинаковыми данными на некоторые поля,например у тебя в классе есть 4 поля, из них 2 поля будут повторяться в 95% всего проекта, вот ты и пишешь конструктор для этих двух полей, а с остальными уже работаешь вне конструктора.
>>164565708я ему уже даже листинг скинул>>164565177 а он все равно ((((
>>164565506Ну я напишу этот код. И как тогда вызывать именно конструктор пользовательский, а не обычный? Ну вот в коде у меня будут получается:>вот эта конструкция 1string name = textBox1.Text;string surname = textBox2.Text;Student Stud = new Student (name, surname);>и вот эта, конструкция 2Student Stud1 = new Student();Stud1.name = textBox1.Text; А текстбокс он один. Какая из них будет тогда использоваться? Эти же конструкции одно и то же делают - записывают в поля значения.
>>164565177Менять поля класса просто так не рекомендуется.Stud1.name = textBox1.Text; Это плохой тон, у тебя есть однокурсник его зовут Дима, ты хуяк просто так по мгновению Диму поменял на Машу вроде бы неплохо так незя.Должно произойти событие Метод который позволит изменить Диме имя. Т.е. ООП подразумевает что всё является реальными объектами с которыми есть взаимодействие. Опять же делая такStud1.name = textBox1.Text; Ты не вводишь проверку которую можно сделать в конструктореpublic void Student(string Name){ if(Name.Lenght < 10 && Name.Lenght > 1 && Name != "Залупа") Nm = Name;}
>>164565177> погоди, погоди. Я вот класс использовал только для доступа к полям, чтобы записать в них то, что введет в текстбокс пользователь и потом в датагридвью эти данные взять и вывести. Ну т.е. создаем объект класса> Student Stud1 = new Student();> Stud1.name = textBox1.Text;> Вот записали в поле то, что пользователь ввел в текстбокс.> Далее в датагрид вывели.> И...и... Все. Где тут надо создать второй объект и для чего? Как тут использовать конструктор? Где я делаю неправильно?Блять. Вот это:> Student Stud1 = new Student();У тебя сработал конструктор по умолчанию.Но ты можешь сделать так:Student Stud1 = new Student(textBox1.Text, textBox2.Text, textBox3.Text);А потом поля этого Stud1 выводить в грид, в небо, в аллаха
>>164566105двочую!!!
>>164566105>У тебя сработал конструктор по умолчанию.Погоди. Вот я пользователь. Передо мной окно программы. Там есть поле, которое я заполняю данным и кнопка "Записать". Я ввел, нажал на кнопку. И что дальше? Внутри программы что активируется? Конструктор по умолчанию или пользовательский? У нас же есть>вот эта конструкция 1string name = textBox1.Text;string surname = textBox2.Text;Student Stud = new Student (name, surname);>и вот эта, конструкция 2Student Stud1 = new Student();Stud1.name = textBox1.Text; И они обе берут данные из текстбокса одного.
>>164566071Но у меня проверка же будет при записи в свойствах класса. Потом допишу ее в set{} и все.и как не менять поля класса? для чего они тогда, как не для хранения данных.
>>164566458я правда настолько тупой
Блять бы либо тупой либо жирный
>>164567442ну поясни чтобы я понял. ну правда не догоняю>вот эта конструкция 1string name = textBox1.Text;string surname = textBox2.Text;Student Stud = new Student (name, surname);Это записывает в поле name то что введет пользователь>и вот эта, конструкция 2Student Stud1 = new Student();Stud1.name = textBox1.Text; И эта делает то же самое. И какой из конструкторов-то будет работать?
>>164560507 (OP)> Я вот сейчас просто создаю 1 объект, через текстбоксы присваиваю полям значения и записываю в датагридвью. Зачем мне конструкторы? И как делать правильно?Это уебанство. Вся суть ООП в том, что класс может включать в себя хуеву тучу объектов и наследуемых классов (в которых тоже Зуева тучу объектов). В твоей же программе ты все привязал к конкретным текстбоксам. А если тебе нужно получить эти данные из текстового файла на твоей пеке или из базы данных на сервере, например(да или тупо из других текстбоксов, а не тех что ты указал). Ты будешь создавать новый класс в котором данные получаются нужным способом. Но нахуя, если можно создать 1 класс и использовать его потом без изменений в любых программах независимо от того есть ли в ней три текстбокса из твоего примера или нет.Жутко примитивное объяснение и местные кодеры меня обоссут скорее всего за него, но зато наглядно понятно.
>>164560507 (OP)Класс (в котором учатся) по английски - grade.
был бы тут хоть один нормальный прогер, уже давно бы посоветовали разработать интерфейс IStudent и наследоваться от него классу, а то не ООП, а кака-то хуйня у ОПа получается
>>164564000>талантливые>не может понять зачем нужны конструкторы, даже при наличии интернета с гуглом под рукой
>>164567889Ты тред-то читал? Посмотри внимательнее и подумай, какого это - объяснить опу что такое интерфейс, как его наследовать, и реализовывать.
>>164568394просто их группа недавно прошла интерфейсы, не мешай ему выебываться своей ахуенной программистостью
>>164567763ну и как это сделать?
Вот глядите. private void button1_Click(object sender, EventArgs e) - это кнопка которая берет и записывает данные в датагрид{Student Student1 = new Student(); - создаем объект классаStudent1.Name = textBox1.Text; - в поля записываются данные из текстбоксаStudent1.Surname = textBox2.Text;student1.NumClass = textBox3.Text;dataGridView1.Rows.Add(Student1.Name,Student1.Surname,Student1.NumClass); выводятсяStudent Student 2 = new Student(textBox1.Text, textBox2.Text, textBox3.Text); - а это типа пользовательский конструктор. dataGridView1.Rows.Add(Student2.Name,Student2.Surname,Student2.NumClass); ну и куда запишутся данные из текстбоксов? и какой конструктор будет работать? Я вот не догоняю. Поясните.}class Student{private string name;private string surname;private string numClass;public string Name {get;set}public string Surname {get;set}public string NumClass{get;set}public Student(){}public Student(string name, string surname, string numClass){Name = name;Surname = surname;NumClass = numClass}}
https://pastebin.com/f2T1tL8pВот правильно реализованный класс для хранения данных, вместе с конструктором.>Нужен интерфейсНет, сказано же, что это класс для хранения данных, обычный dto, какой нахуй интерфейс.>Как реализовать конструкторБерёшь и реализовываешь без задней мысли. Не делай пустых конструкторов для инициализации - это гарантирует, что поля будут заполнены все. Не делай конструкторов с частичной инициализацией, лучше используй optional подход. Пример https://pastebin.com/5jb4epaV - здесь фамилия необязательная, может быть null.А еще делай поля иммутабельными, ибо это класс для хранения данных и ты не хочешь, чтобы его поля можно было менять напрямую, будут проблемы с многопоточностью. В примере это val.
>>164567889> IStudentТупица, у тебя у тебя сразу варниг вылезет о нарушении правил именования, школокодер-хелловорлдщик блять.Потом ебись после тебя, думая а хули это я пишу iStudent а мне красным подчеркивает нахуй
>>164569917Нихуя подобного, это нормальная нотация для интерфейсов, даже видел как её используют. Только всё равно говно, я бы интерфейс именовал как Student, а имплементацию как StudentImpl, либо по смыслу, только в данном случае речь идёт о дто, а значит интерфейс не нужен
>>164569717Это язык Котлин что ли?
>>164569109>Student Student1 = new Student(); - создаем объект классаИспользуется пустой конструктор - плохо.Далее ты через сеттеры записываешь данные в созданый объект.>Student Student 2 = new Student(textBox1.Text, textBox2.Text, textBox3.Text);Вот так заебись. А пустой конструктор удали нахуй, он бесполезен.
>>164570074>даже видел как её используюткак минимум, эпам
>>164570218Да
>>164569109Вы подскажите мне, где тут я хуйню сделал? Какой будет конструктор работать?
>>164570074Все пишут сейчас с "i", але для, 2к17 на дворе, так модно и в тренде, намек на эппл, отсталый ты дед
>>164570256он бесполезен? Всмыле эта часть кода не будет работать? А если у меня условия стоит использовать оба конструктора? И по умолчанию и пользовательский?
>>164560507 (OP)В твоём случае конструктор можно не писать, он сам создастся нормальный, как и деструктор. А вообще хули такие вопросы лёгкие это что 11 класс?
>талантливые>не может понять зачем нужны конструкторы, даже при наличии интернета с гуглом под рукой
>>164570427Я не знаю на каком языке ты пишешь и можно ли вообще убрать пустой конструктор, но если можно, то лучше его не использовать.Бесполезен не потому, что не будет работать. Работать будет, но это небезопасно. Если это объект для хранения данных - то в констукторе надо инициализировать все поля.Вот пример почему:Допустим у тебя есть вариант использовать пустой конструктор. Это значит, что тебе придёттся каждое поле задавать через сеттер. Предположим, что у тебя серьёзная программа и сам класс имеет много полей. Пустым констурктором ты развязываешь себе руки заполнить класс постепенно, в разных слоях, как угодно. И в определённый момент ты можешь забыть последовательность его заполнения и ошибёшься - попробуешь вытащить или использовать какое-либо поле, но оно не будет задано. Это приведёт к ошибкам или крешам.В случае конструктора на все поля + optional подхода ты заранее знаешь какие поля могут быть пустыми и это сможешь обработать без ошибок.
>>164560507 (OP)private name;private surname;private numClass;public function get(name){return this->name;}
>>164570846private string Surname, Name;public surname {get;set}public name {get;set}проиграл
>>164560507 (OP)>private string Surname, Name;>public surname {get;set}>public name {get;set}проиграл
ООП не нужно же.
>>164570758на c#>Бесполезен не потому, что не будет работать. Работать будет, но это небезопасно.Вот я и понять тогда не могу. Какой конструктор будет использован в моем примере? текстбоксы-то одни и те же. Куда данные пойдут в студент1 или студент2? пустой конструктор будет использован или пользовательский? Как понять?
>>164570985не блиа. не дописал там. set{Name = name}
>>164571008На чем божишь?
>>164571164и еще раз проиграл с кодстайла
>>164571089или если мы все 3 текстбокса заполняем, то будет этот:Student Student 2 = new Student(textBox1.Text, textBox2.Text, textBox3.Text);А если заполним 2 текстбокса, а третий пустой, то по умолчанию конструктор будет?Student Student1 = new Student(); - создаем объект классаStudent1.Name = textBox1.Text; - в поля записываются данные из текстбоксаStudent1.Surname = textBox2.Text;student1.NumClass = textBox3.Text;dataGridView1.Rows.Add(Student1.Name,Student1.Surname,Student1.NumClass);
>>164571301а в чем именно проиграл? Все же как учат везде.
>>164571089Не зависит от текстбоксов.Если ты делаешь Student() - пустой, если Student("asd", "asd", 6) - тот что с полями.Использование конструктора зависит от того что ты в него передаёшь, а не откуда берёшь.
>>164571198> На чем божишь?На паскале.
изучаю Джавасыч 25 лвл
>>164571366да блин. я понимаю что если () то по умолчанию. Вот в моем коде>>164569109там есть и по умолчанию конструктор и пользовательский. И оба они записывают данные в поля, которые берут из текстбокса. Ну и в итоге, передо мной эта программа. Я ввел в текст бокс данные и нажал на запись. Что дальше? Какой участок кода будет работать?ЭтотStudent Student1 = new Student(); - создаем объект классаStudent1.Name = textBox1.Text; - в поля записываются данные из текстбоксаStudent1.Surname = textBox2.Text;student1.NumClass = textBox3.Text;или вот этот:Student Student 2 = new Student(textBox1.Text, textBox2.Text, textBox3.Text); - а это типа пользовательский конструктор.
В чём твоя проблема? Ты не понимаешь для чего нужен конструктор?
>>164571888Запускать то что написал пробовал?
>>164566071лол. Код почти как на Джаве. Я правильно понимаю что в случае чего можно будет легко перекатиться на C?
>>164572123ну запускается, да. Но как понять какой из них работает-то?
>>164571967Вот же прямой вопрос:Вот в моем коде>>164569109там есть и по умолчанию конструктор и пользовательский. И оба они записывают данные в поля, которые берут из текстбокса. Ну и в итоге, передо мной эта программа. Я ввел в текст бокс данные и нажал на запись. Что дальше? Какой участок кода будет работать?ЭтотStudent Student1 = new Student(); - создаем объект классаStudent1.Name = textBox1.Text; - в поля записываются данные из текстбоксаStudent1.Surname = textBox2.Text;student1.NumClass = textBox3.Text;или вот этот:Student Student 2 = new Student(textBox1.Text, textBox2.Text, textBox3.Text); - а это типа пользовательский конструктор.
>>164572423Видимо действительно не твоё это.
>>164572476>ну и куда запишутся данные из текстбоксов? и какой конструктор будет работать?>Student Student1 = new Student()Конструктор создает первый объект>dataGridView1.Rows.Add(Student1.Name,Student1.Surname,Student1.NumClass);Метод записывает (ведь так?) данные в переменные первого объекта>Student Student 2 = new Student(textBox1.Text, textBox2.Text, textBox3.Text);Конструктор создает второй объект>dataGridView1.Rows.Add(Student2.Name,Student2.Surname,Student2.NumClass);Метод записывает данные в переменные второго объектаДва конструктора, два объекта, два метода
>>164573055>Что дальше? Какой участок кода будет работать?Работать буду оба, в порядке очереди, в чем проблема? Если конечно нет ошибок и одно может работать без другого
>>164571353private variable;public Variable;так вас учат, а не той херне, что ты написал
>>164573172Ну а как тогда сделать так чтобы использовались и конструктор по умолчанию и пользовательский в моём примере??
>>164572381в джаве коллекции какие-то по голове пизданутыев остальном внешне всё ощено похоже
>>164573372Ну да, поля с маленькой методы с большой
>>164573429нихуя
>>164573382Они и так используются. Проблема не в этом. Ты нагородил ахинеи. Начни заного.Ты вообще понимаешь как и что у тебя должно работать? Возьми листок и ручку. Сформулируй в одном предложении что делает программа. Напиши сверху листа. Ниже нарисуй блок схему: какие данные вводятся и что должно получится в результате. Подумай, какие методы и классы тебе нужны, какие переменные. Распиши логику на бумаге. Потом переделай. И ещё раз. Теперь иди пиши код.
>>164573420У меня уже появляются мысли о дропе, но я уже вложил 800 рублей (вклад уровня /b) в учебник и его надо бы отработать. Сейчас 6-я глава из 15.
>>164573922В задании написано, что надо использовать оба конструктора: и пользовательский, и по умолчанию. Т е. Сперва создать класс имеющий поля для хранения данных, а потом про инициал зимовать с помощью конструкторов. Ну и как это сделать? Я вот не догоняю. На простых примерах вроде ясно, но вот на конкретно моём не понимаю.
Никто не подскажет?
>>164574345Сформулируешь нормально вопрос - помогу. Догадываться что такое "про инициал зимовать" - полный пиздец.
>>164565853Ты пеня...У тебя есть два РАЗНЫХ конструктора. Первый не принимает параметров, второй принимает два (или сколько тебе нужно) параметров. То есть перегруженный и не перегруженный.Если хочешь вызвать не перегруженный, пишешь - Student nSt = new Student();перегруженный - Student nSt = new Student(name, surname, numClass);
>>164576146>>перегруженный и не перегруженныйОн называет их пользовательский и обычный, соответственномимо
>>164572423Поставь точки останова и пройди код по шагам
>>164575732>"про инициал зимовать"Как-будто так трудно догадаться, что это проинициализировать.Вопрос?Задание стоит так: Создайте класс Студент с полями Фамилия Имя Класс. Далее создать объекты класса. Объекты должны быть созданы с помощью конструктора по умолчанию и пользовательского.Я создал класс. В нем поля. А вот как мне сделать так, чтобы у меня были два объекта, если оба берут данные для полей из текст-бокса?
>>164576146Как вызывать их на уровне синтаксиса я знаю. Суть в другом. Я не понимаю как их использовать на моем примере. >>164569109Я же говорю, вот я создал два объекта и они, выходит, что принимают одни и те же данные из текстбокса и как мне тут подсказывают выполняются друг за другом. Ну и что-то тут не так, верно? Ну и как использовать оба конструктора и моем примере?
Тащемта секретов тут нетclass Student:....def __init__(self, family, name, num_class):........self.family = family........self.name = name........self.num_class = num_classstudent = Student('Vasua', 'Pupkin', 3)
>>164577679суть не в том. Я кажется не могу понять на уровне общей архитектуры.Еще раз.Вот есть 3 текстбокса и кнопка записать.Есть датагридвью, который ранее записанное в эти текстбоксы сохраняет и отображает списком. И как мне тут использовать конструкторы для создания объектов?
>>164577441Во втором объекте у тебя поля пустые, ты в них ничего не присвоил. Не совсем понятно что у тебя не работает. Скажи как должно быть и что происходит на самом деле.
>>164569717> Kotlin
>>164578109почему пустые? разве так не считываются данные с полей?
>>164578109>Не совсем понятно что у тебя не работает.Да я же говорю уже 10 раз:Задание стоит так: Создайте класс Студент с полями Фамилия Имя Класс. Далее создать объекты класса. Объекты должны быть созданы с помощью конструктора по умолчанию и пользовательского.Я создал класс. В нем поля. Ну и как мне тут использовать оба конструктора? Мне надо создать 2 объекта получается. А где их тут уместить? Чтобы это выглядело нормально?
>>164578374Даун, ща, катку доиграю и объясню почему ты даун
ДИМОЧКА пришёл в офис очень несчастным и подавленным. Всё, что он хотел, это просто поесть в абсолютной тишине наедине с собой. — Что стряслось? — прервал раздумья ТИМЛИД.— Мы программируем, как мудаки — нервно ответил ДИМОЧКА, — У всех программистов есть по машине, крутому телефону и толпе шлюх! А у нас нету нихуя совершенно!В офисе нависла тишина. Через несколько секунд ТИМЛИД прервал её:— Послушай, — обратился он к ДИМОЧКЕ , протянув ему ОПЕРАТИВКУ.— Что это?— Да послушай говорю.ДИМОЧКА прислонил ухо к ОПЕРАТИВКЕ и услышал шипение.— Ну и что? — спросил ДИМОЧКА .— Шипит?— Шипит.— Это она так нагрелась от нашего кода! — весело сказал ТИМЛИД.— И что?Немного помолчав, ТИМЛИД сказал:— Не важно, сколько у тебя денег, ДИМОЧКА . Зачем тебе они, если у тебя на лице кусок расплавленной пластмассы, а я выпишу денег на новую оперативку и распилю бюджет, только для этого ты и нужен, мудак...После этих слов ДИМОЧКА повесился.
К нам в айти отдел пришёл новый сотрудник. Нужно сказать, что у нас в отделе работают почтенные крестогоспода. Новичка посадили за компьютер, но не успели даже дать задание, как он начал кодить. Начальник из любопытства подошёл посмотреть, что он там написал. В течении секунд тридцати он побледнел, затем посинел, затем покраснел, а потом трясущимся от нескрываемого гнева голосом сказал:- Это же Абстрактная фабрика! На чём ты кодил до этого?- На Джаве.- Жабапидор! - в один голос заорали все 20 человек.- Жабапидор! Жабапидор! Жабапидор!Кто-то включил сирену. Над дверьми замигали красные лампочки тревоги. На окнах мгновенно сомкнулись плотные жалюзи. В офисе одновременно бывает два отдела человек по сорок. На обеде вся эта толпа собирается на первом этаже, где яблоку негде упасть. А поэтому, как охранники ни пытались вырвать джавапидора из рук разъяренной толпы, им это не удалось. По всему офису стоял сплошной рев:- Жабапидор!В коридоре его сразу же сбили с ног. Используя галстук как поводок, его тащили через весь коридор, передавая из рук в руки. Поэтому получалось так, что никакого движения в коридоре не происходит, но и джавапидора тоже нет. Его заволокли в каптерку под лестницей, где хранятся ведра и швабры с тряпками, и там закрыли. Под конец рабочего дня он всё же появился. За получасовой обед его изнасиловали несколько человек. Сопротивляться было бы бесполезно. Через день на нем чистым оставалось одно лицо, а на теле не было живого места. Он превращался в мразь, в животное. Его били все, даже дизайнеры и уборщицы. Его заставляли есть говно и опарышей. В очко ему совали битые лампочки, живых птиц и змей. Он стал «дельфином» – в нужнике пятнадцать дырок, он ныряет в первую, выныривает, ныряет во вторую... И так – до конца. От него постоянно воняло. С ним невозможно было рядом находиться. Был такой случай: к нам устроился работать Степаныч. Степаныч сидит на толчке, а кто-то снизу через очко хватает его за яйца. Степаныч с воплем вылетает в коридор без штанов. Напротив - айти отдел. Смех не стихал долго... Потом Степаныч забил его кирзовым сапогом насмерть. Менты как узнали, что сдох джавапидор даже дело заводить не стали.
я начинаю кажется догадываться. Подтвердите так это или нетесть 3 текстбокса.создаем 4 объекта.если заполнены все 3 текстбокса, то работает конструктор в котором 3 аргументаесли заполнены 2 текстбокса, то конструктор с 2 аргументамиесли заполнен 1 текстбокс, то конструктор с 1 аргументомесли все 3 поля пустые, то конструктор по умолчаниюТак можно сделать?
Есть ли в природе хоть один жавапидорас, который знает что-нибудь кроме джавы? Ну хотя бы ту же Скалку, работающую на jvm. Причем `знает' не в смысле запускал 2 раза и посчитал рекламную хуйню с сайта, а действительно хорошо знает. Работал минимум полгода, знает, решению каких проблем адресован язык, знает, зачем он нужен и какие преимущества имеет перед джавой, хорошо понимает, какие принципы заложены в систему типов и нахуя они вообще туда заложены, знает, как она жутко она фейлит на оптимизации хвостовой рекурсии, знает, как она затирает типы и вызывает методы через рефлексию, знает, почему на уёбищной jvm по-другому не сделать, знает, почему неленивые языки - говно, знает, что такое abstraction penalty и почему любой джаваынтырпрайз адово тормозит, несмотря на превосходные результаты на шотауте, самый лучший мусоросборник и hotspot до которого всему немейнстиму в говне плыть и плыть, знает, почему джава - не язык программирования для нормальных людей, а говно для переквалифицировавшихся таксистов? Нет таких? Ни одного? Только студентота и дрочеры на абстрактные фабрики абстрактных аннотаций виртуальных плагинных шин? Так я и знал. И это программисты. Говно какое-то. Пидоры блядь.
Ёбаным жабоиндусам, напоминаю разницу. Зоопарк вопросов:- где замыкания?- где свойства?- где шаблоны? Разработчики Sun вынуждены только облизываться. Даже генерики, введённые в 5-й версии Java — не более, чем syntactic sugar. Дотнетовские генерики это реально поддерживаемые платформой типы, которые расширяются на лету при загрузке, котрые оптимизируются JIT-компилятором. Для Java генерики существуют только в коде и ни JIT, ни загрузчик классов их никогда не видит. Поэтому проблемы боксинга, преобразования типов в runtime просто скрыты от программиста.- где делегаты/евенты?- где partial-классы?- где детерминированное освобождение ресурсов (ключевое слово using + интерфейс IDisposable)?- где оптимизация JVM для расширений процессоров?- где аналог linq и в частности удобные мапперы?- где расширения методов класса?- где скрытая имплементация интерфейсов?- где перегрузка параметров функций?- где нормальное потребление памяти приложением?- где быстрая работа приложения?- где нормальные иде, с полноценными дизайнерами?- где пользовательские value types?- где методы у инстансов value types?- где var и анонимные типы- где перегрузка операторов?- где оптимизиции хвостовых вызовов? (в свете фунционального хайпа это должно вызывать некоторый батхёрт) - Где чёткое разделение домены и сборки? Это не учитывая, целый ворох технологий недоступный понимаю жабоиндусов, такие всякие сильверлайты/вин-веб/формочки, впф, XNA, список можно продолжать бесконечно, как впрочем и список ущербности жабы...Всего, чего нет в жабе, автоматически объявляется хуитой, как только это появляется в жабе, это автоматически становится нехуитой. При этом, требуется сделать вид, что хуитой это называл кто-то другой.
>>164564976Письмак Алексей Евгеньевич, залогиньтесь
>>164577297Создай другой текстбокс под второй объект или создавай объекты поочередно, меняя значения в текстбокса перед каждым созданием или вводи значения в текстбокс через запятую, разбивай строку на части и для каждого значения делай объект или забей хуй на текстбоксы вообще, в задании про них ни слова. Куча вариантов же, как хочешь так и делай.
>>164560507 (OP)>Зачем мне конструкторы?Инициализации для.
>>164578530Нахуя ты не понял.
>>164578999Но это же хуита какая-то. Зачем текстбоксы создавать для второго объекта отдельного? А если объектов будет 3? А 4?То ли я не понимаю истинного назначения этих констркуторов, то ли хуй знает. Вроде на простых примерах все ясно. А тут нет.
>>164579182а как тогда?
>>164579029>Инициализации для.в моем примере для чего они?
>>164579190Да блядь, назначение конструктора это выделение в куче памяти под объект. Помнишь new delete вот это вот всё, не ебу какой там у тебя язык, вот это та же хуета, только для класса. Конструктор и деструктор.
>>164579259Они везде для инициализации.
>>164579190// вот это классfinal class Student { private string Name; private string Surname; private string numClass; // Вот это конструктор класса. public void Student(string studName, string studSurname, string classname) { this.Name = name; this.Surname = studSurname; this.numClass = classname; } public string GetName() { return this.Name; } public string GetSurname() { return this.Surname; } public string GetClass() { return this.numClass; }}// вот тут ты создаешь 2 объекта классаStudent student1 = new Student("Коля", "Петучный", "1А");Student student2 = new Student("Абу", "Нариманов", "1Б");Хули тебе непонятно.Мы сделали поля Name, Surname, numClass закрытыми, чтобы какой-нибудь левый "хакер" не смог их поменять. Их можно создать только 1 раз, и нельзя поменять, так как методов для этого нет. Также ты не сможешь создать новый класс на основе предыдущего, так как класс Student является конечным. Также мы сделали методы для того, чтобы юзер мог узнать имя, фамилию и класс объекта.Сейчас классы student1 и student2 создаются в консольке ручками. Но на практике должна быть програмка, при помощи которой пользователь мог бы вписать данные в поля (input), а твоя програмка на основе этих данных сама создавала объект при помощи конструктора Student.Я бы порекомендовал тебе почитать Джозева Блоха "Java. Эффективное программирование". Там, конечно, все на java, но там очень хорошо объясняется суть ООП. А учитывая то, что ты пишешь на c#, тебе будет несложно, ведь синтаксис схож.
>>164579259Бля, у тебя глава про конструкторы? Прочитай блять внимательно теорию. А потом ещё загугли и ещё почитай.
>>164579314>>164579369Ну это ясно. Выделение памяти.Как в моем сраном примере использовать два конструктора? Я этого не понимаю.
>>164579190> Но это же хуита какая-то. Зачем текстбоксы создавать для второго объекта отдельного?Да хуй его знает, что тебе надо. Я тебе еще способов накидал.> То ли я не понимаю истинного назначения этих констркуторов, то ли хуй знает. Вроде на простых примерах все ясно. А тут нет.Как связаны конструкторы и текстбоксы? Ты просто за какими-то хром присваиваешь двум объектам одни и те же данные из одних и тех же полей.
>>164579259Для того, чтобы создавать объекты учеников на основе класса "Ученик". Конструктор дает тебе возможность создать объект на основе класса этого конструктора.
>>164579474Причем тут память? Назначение конструкторов - создавать из шаблона (класс) конкретный экземпляр (объект).
>>164579474Какие два? Для того, чтобы заебись копировалось нужен конструктор копированияКонструктор копирования нужен нам для того, чтобы создавать «реальные» копии объектов класса, а не побитовую копию объекта. Иногда это принципиально важно. Такую «реальную» копию объекта надо создавать в нескольких случаях: когда мы передаем объект в какую-либо функцию в виде параметра; когда какая-либо функция должна вернуть объект класса в результате своей работы; когда мы в главной функции один объект класса инициализируем другим объектом класса.Конструктор по умолчанию создаётся, когда ты не указал конструктора вообще, как ты там делал до этого, на самом деле конструктор у тебя всё равно был.
>>164579415>// вот тут ты создаешь 2 объекта классаТ.е. чтобы добавить строчку в датаГрид я такой открываю экзешник в визуал студио и пишу там:>Student student2 = new Student("Абу", "Нариманов", "1Б");>Но на практике должна быть програмкаВ том и суть, что я не понимаю как это на практике сделать. То что ты написал я уже написал до тебя и это понятно. Мне именно Но на практике должна быть програмка, при помощи которой пользователь мог бы вписать данные в поля (input), а твоя програмка на основе этих данных сама создавала объект при помощи конструктора Student.Вот конкретно у меня есть 3 текстбокса и кнопка записать в датагридвью. Как мне сделать так чтобы тут создавался новый класс по конструктуру пользовательскому, да еще и по умолчанию тоже. Вот это можешь мне объяснить?
>>164579508>Как связаны конструкторы и текстбоксы?в текстбоксе пользователь вводит данные, которые записываются в поля объекта.
>>164579474>Как в моем сраном примере использовать два конструктора? Я этого не понимаю.Есть у тебя 2 ученика. Тебе надо ввести их имена, фамилии и классы. Один ученик сразу говорит тебе, что его зовут Вася Сидоров, и он учится в 1В классе. А вот второй ученик не знает, в каком классе он учится. И ты кидаешь его в дефолтный класс 1А. Для этого ты используешь разные конструкторы одного класса:Это для 2 студента, который не знает свой классpublic void Student(Name, Surname) { this.Name = Name; this.Surname = Surname; this.numClass = "1А";}Это для 1 студента, который все знаетpublic void Student(Name, Surname, numClass) { this.Name = Name; this.Surname = Surname; this.numClass = numClass;}Эта дрисня называется перегрузкой методов. А если у тебя будет студент, который вообще нихуя не знает, ты можешь создать еще один конструктор, который будет задавать пиздюку дефолтные имя, фамилию и класс.
>>164579693>Для того, чтобы создавать объекты учеников на основе класса "Ученик".Бляяяяя!!! В теория я знаю. Ты можешь мне пояснить как на моем примере это будет выглядеть?
>>164580138https://stepik.org/lesson/546/step/1?unit=869На, короче. Смотри и вникай. Там все объяснено.
>>164579866У тебя недостаточно знаний, чтобы написать эту програмку. Учи язык нормально, а не прыгай с основ в написание пользовательского интерфейса. Найди нормальную книгу и по ней учись. Я не могу объяснить тебе, как сделать подобную программку, потому что ты не знаешь основ, которые используются для её написания.Так понятно?
>>164580138>>164580009Держи. Так это будет выглядеть в твоем примере.
>>164580009Бляяя. Я уже визжать сейчас буду.С такими примерами я знаю как это работает. Я не пойму как конкретно на моем примере это сделать? С текстбоксами, куда пользователь сам вводит данные. Вот как?
>>164580312Да иди нахуй, кого ты наебать пытаешься? Никто ничего за тебя делать не будет, разбирайся на том примере и делай сам.
>>164580178Каких основ, мать твою? Каких знаний? 3 текстбокса. Из них берется информация. Что тут сложного? Какие пользовательские интерфейсы?
>>164580312> С текстбоксами, куда пользователь сам вводит данныеname, surname=input().split()man=Man(name,surname)Чёта вроде такого будет.
>>164580358на каком примере?Вы мне все суете под нос то, как программист может быстро и легко создавать новые объекты класса, пользуясь конструктором. Это мне ясно.Мне не ясно как создавать эти объекты, используя конструктор при вводе данных из текстбокса.
>>164580312>>164580178>Какие пользовательские интерфейсы?3 текстбокса>Что тут сложного?Ничего, но ты же завис на этом.Вот у тебя есть 3 текстбокса, из них ты берешь информацию, закидываешь её в конструктор, и запускаешь. Если ты не знаешь, как вытащить данные из текстбоксов, то учи основы.
>>164580549>>164580507Вот это переведи на свой язык и всё.
>>164580312Тебе уже сказали что это будет сложнее чем у тебя написано. А решенное задание выглядит так:class Student {public string name;public string surName;public string numClass;}static int Main(string[] args) {Student StudentFirst = new Student();Student StudentSecond = new Student( //твои охуительные параметры//);}
>>164580439>Каких основ, мать твою?Как брать строки, разбивать их по словам и засовывать каждое слово в элемент массива.>Каких знаний?Знаний о массивах
>>164580573Блять. Как вытащить данные я знаю - это вообще не проблема. Проблема в другом.Мне надо использовать несколько конструкторов. Т.е. создавать несколько объектов. И я не вижу того, как это сделать на моем примере. Я уже умею создавать объект, использовать конструктор по умолчанию и выводить все это в датаградвью. Я не могу понять как тут использовать два объекта с разными конструкторами.
>>164580617Что сложнее? У меня уже есть класс с полями.В основном коде создается объект класса. В поля объекта вносят данные из текстбоксов.В датагридвью все это отображается. Все работает. Теперь надо как-то использовать два конструктора. Вот тут и проблема, что я не понимаю как их тут можно правильно использовать.
>>164580826>Я не могу понять как тут использовать два объекта с разными конструкторами.1 конструкторpublic void Student(Name, Surname) {this.Name = Name;this.Surname = Surname;this.numClass = "1А";}2 конструкторpublic void Student(Name, Surname, numClass) {this.Name = Name;this.Surname = Surname;this.numClass = numClass;}Student student1 = new Student("Вася", "Пупкин") // создаем объект при помощи первого конструктора. Ему автоматически задастся класс 1АStudent student2 = new Student("Нариман", "Намазов", "2Б") // создаем объект при помощи второго конструктора.
>>164580617О да, да. Давай напиши еще раз, уже 10. Ты не понимаешь что я спрашиваю?
>>164580776Зачем мне тут массивы?
>>164580507class Man:... def __init__(self, name, surname):... self.name = name... self.surname = surname... def __str__(self):... return self.name+" "+self.surnamename, surname=input().split()man=Man(name,surname)print(man)Вот типа того.
>>164580776>Как брать строки, разбивать их по словам и засовывать каждое слово в элемент массива.Переходи на питон>>164581155
>>164581211Не, спасибо, я C# учу, java немного знаю и на js работаю. Питон колупал в свое время. Больше всего мне java вкатила.
>>164581030>Student student1 = new Student("Вася", "Пупкин")Сука. У меня уже истерика.Т.е. я открываю это программу свою. Вижу там датагридвью с информацией, списком. Вижу текстбоксы для ввода информации для новой строчки. И кнопку записать.И что я делаю? Правильно нахуй! Открваю эту программу через вижуал студию и пишу там вот эту хуету. потом перекомпилирую ее.Еще раз. Еще раз я повторю. Мне не надо создавать новый объект в коде. Это я умею. Мне надо, чтобы этот объект по конструктуру создавался сам исходя из того, что вводит пользователь в текстбокс.
>>164581321Тогда енжой ёр пердолинг.
>>164581030>>164580617>>164580009>>164579415Четыре ебаных раза, кто-то мне повторяет одно и то же. 4 ебаных раза, я ему объясняю, что мне нужно другое. Я правда так хуево объясняю что мне нужно?
>>164581321>name, surname=input().split()>Как брать строки, разбивать их по словам и засовывать каждое слово в элемент массива.>пердолингТипа вот так это делается в питухоне.
>>164581058О да, да. Давай напиши еще раз, уже 10. Ты не понимаешь что я спрашиваю?Ты хату спрашиваешь. Твоя проблема в том что ты пытаешься получить одновременно 2 набора данных из своих текстбоксов. Эта проблема никак не связана с конструкторами и их количеством.
>>164581486Ну инпут это ввод пользователя.
>>164580998>>164580826Ты на редкость упертый даун. Знаешь как это со стороны выглядит? Стоит школьник в подземном переходе и спрашивает у каждого: "Дядь, мне в школе задали дилдак в жопу засунуть. Я засунул дилдак, огурец и бусы. Нужно ещё яйца резинкой перевязать, подскажи как сделать?Мимопроходилы задумчиво чесали лысины и отвечали: "Так ты уже засунул дилдак, задание выполних, хули надо?". Другие на собственном примере наглядно показывали что, как и куда. Третьи утверждали, чтобы выполнить третье желание нужны резинка и яйца, чего у школьника не было...Короче блять, ты изобретаешь ебливые велосипеды в которые хочешь засунуть ещё велосипедных костылей просто потому что НАДА КАКТА ИСПОЛЬСАВАТЬ.
>>164581325Блядь, как ты заебал. Вот сейчас у меня реально бомбануло, ебаная ты зелень. Держи сажи себе в ебало, мразь.Ты не знаешь, как связать несколько полей на страничке с кодом, сука ты тупая. Ты не умеешь нормально формулировать запросы.Так блядь, формулирую вопрос, который ОП должен был задать в самом начале:"Господа, у меня проблема.У меня есть страница с 3 полями ввода. И есть код, создающий объект класса Student. Мне надо передать данные из этих 3 полей в конструктор Student(Name, Surname, numClass), но я не знаю, как передать эту информацию.">>164581473Ты реально ужасно передаешь информацию, долбоеб.
>>164581486А теперь открой либу и посмотри как это реализуется там.
>>164581639>>164581695Вот
>>164560665я даун, поясните мне что изображено на пике
>>164581714Но зачем? Зачем тратить время и силы на пердолинг, язык должен быть твоим инструментом, средством выражения мысли, а не тем, с чем тебе приходится бороться и пердолиться постоянно.
>>164581513Я не пытаюсь. В задании сказано использовать 2 контрструктора. Я пытаюсь придумать как их сипользовать. Но не выходит. Вот я и спрашиваю. Мне тут пишут: Бля, вот как это делается:Student student1 = new Student("Вася", "Пупкин")Но мне не это нужно. В моем условии даннеы вводятся из текстбокса и никак иначе.
>>164581325Это потому что ты ёбаный олень.Ты описываешь ебучие конструкторы в классе.Конструкторы описываешь с учетом нескольких вариантов (1 текстбокс пустой, 2 заполненных - из заполненных взять значения, вместо пустого присвоить значение по умолчанию и т.д.)А потом в основном блоке нажатием на кнопку просто вызываешь этот ебучий конструктор, присвоив переменным конструктора данные из текстбоксов.>>164581473Норм,просто к нему подход другой нужен
>>>164581325>Мне надо, чтобы этот объект по конструктуру создавался сам исходя из того, что вводит пользователь в текстбокс.В чём проблема то? Опиши логику своих действий и укажи место где не состыковка.И постарайся получше, объясняешь ты как истеричная 13летняя пизда
>>164581871>Норм,просто к нему подход другой нуженТак это ОП пишет, что он хочет одно, а ему предлагают другое.
>>164581695>У меня есть страница с 3 полями ввода. И есть код, создающий объект класса Student. Мне надо передать данные из этих 3 полей в конструктор Student(Name, Surname, numClass), но я не знаю, как передать эту информацию."Ты неверно понял. Как передать я знаю. Я еще раз повторюсь, что у меня все работает как надо. Я не могу использовать 2 конструктора.
>>164581814Ну бля правда объясните, минут 5 уже пялюсь и не могу понять.
>>164581820Двачаю.
>>164581871>Конструкторы описываешь с учетом нескольких вариантов (1 текстбокс пустой, 2 заполненных - из заполненных взять значения, вместо пустого присвоить значение по умолчанию и т.д.)НУ а так хули я это написал вот тут>>164578530 еще час назад назад и мне сказали, что я ХУЙ.
>>164581931Так он не понимает нихуя,что ему предлагают именно то,что нужно. Потому что тупой ебан. А значит нужен следующий подход - либо объяснить ему,что он тупой ебан и сам нихуя не понимает,чего хочет, либо забить хуй и кинуть ссаными тряпками. Я первый вариант попробовал,если не поймёт,пойду по второму - сагану и скрою
>>164581999Иллюстрация-аналогия к какому-то понятию из программирования. Не благодари.
>>164581974>что у меня все работает как надо>Я не могу использовать 2 конструктораВся суть. Ставлю пол хаты на то что ты не сможешь объяснить нахуя тебе нужно обязательно вставить конструкторы. ПАТАМУЧТА В УЧЕБНЕКЕ НАПИСАНА НАДА
>>164581851Тебе тут 10 раз показали как из использовать. Вместо конкретных данных вставляет в конструктор просто строки на каждое поле. Инициализируешь их своими сраными текстбоксами. Все, конструктор перегружен и объект создан. Потом берешь обычный конструктор, создает пустой объект и присваиваешь его полям значение все тех же текстбоксов. Все, второй объект создан. Оба конструктора используются и делают то же самое, каждый для своего объекта. Условие задачи выполнено.
>>164581999Я вижу поля и класс. Три "тонеля" это наверное конструкторы, но хз
>>164582141Там несовсем верно написано.Есть 3 текстбокса.В классе создаешь 4 конструктора.В 1 конструкторе не пишешь аргументов (это дефолтный конструктор).Во 2 в аргументах пишешь только имяВ 3 пишешь имя и фамилиюВ 4 пишешь имя, фамилию и класс.Потом просто заполняешь поля нажимаешь в гридвью кнопочку отправить, и объект сам создается, тебе не нужно его создавать ручками.Так понятно? А вообще, тебе нужно в гриде написать функцию, которая проверяет, заполнены ли поля, и выдает ошибку, если какое-либо поле не заполнено.
>>164582204>ПАТАМУЧТА В УЧЕБНЕКЕ НАПИСАНА НАДАДа.
>>164582141Потому что ты объясняешься как мудак. В описании класса ты нихуя объектов не создаёшь. Ты просто описываешь в классе конструкторы. А создаешь объекты вызовом конструкторов.
>>164582240блииииа. это тоже было. еще 2 часа назад.Вот в моем коде>>164569109там есть и по умолчанию конструктор и пользовательский. И оба они записывают данные в поля, которые берут из текстбокса. Ну и в итоге, передо мной эта программа. Я ввел в текст бокс данные и нажал на запись. Что дальше? Какой участок кода будет работать?ЭтотStudent Student1 = new Student(); - создаем объект классаStudent1.Name = textBox1.Text; - в поля записываются данные из текстбоксаStudent1.Surname = textBox2.Text;student1.NumClass = textBox3.Text;или вот этот:Student Student 2 = new Student(textBox1.Text, textBox2.Text, textBox3.Text); - а это типа пользовательский конструктор.Т.е. вопрос. Как сделать так чтобы не работали сразу оба конструктора и не записывали одно и то же в датагридвью.
>>164582355> А вообще, тебе нужно в гриде написать функцию, которая проверяет, заполнены ли поля, и выдает ошибку, если какое-либо поле не заполнено.У меня есть такая функция, но придется ее убрать видимо, чтобы по заданию использовать несколько конструкторов.
>>164582425>В описании класса ты нихуя объектов не создаёшьа где там написано что в классе создаются объекты? Это вообще бредятина полная
>>164582582Ты даже не пытаешься. Ты просто повторяешь одно и тоже по кругу. Тебе тут 5 разных решений предложили. Чуть ли не каждую строчку обсосали, но нет, ты продолжаешь задавать вопросы "Какой участок кода будет работать?" в 15 строчках.
>>164582582Для того, чтобы не срабатывали сразу несколько конструкторов, ты должен сделать так:final class Student { private string Name; private string Surname; private string numClass; public void Student(){ this.Name = "ОП"; this.Surname = "Говно"; this.numClass = "Моча"; } public void Student(string studName){ this.Name = name; this.Surname = "Говно"; this.numClass = "Моча"; } public void Student(string studName, string studSurname){ this.Name = name; this.Surname = studSurname; this.numClass = "Моча"; } // Вот это конструктор класса. public void Student(string studName, string studSurname, string classname) { this.Name = name; this.Surname = studSurname; this.numClass = classname; }}В зависимости от количества переданных в конструктор аргументов программа сама выберет нужный конструктор. Если аргументов не будет, то выберет 1 конструктор, если будет 1 аргумент, то второй, если 2, то третий,если 3, то 4.ВОТ ТАК ДЕЛАТЬ НЕ НУЖНО:Student Student1 = new Student(); - создаем объект классаStudent1.Name = textBox1.Text; - в поля записываются данные из текстбоксаStudent1.Surname = textBox2.Text;student1.NumClass = textBox3.Text;
>>164582582> не записывали одно и то же в датагридвью. Так у тебя и там и там Student1.Name = textBox1.Text; - в поля записываются данные из текстбоксаStudent1.Surname = textBox2.Text;student1.NumClass = textBox3.Text; new Student(textBox1.Text, textBox2.Text, textBox3.Text); одни и те же текстбоксыТы наркоман?
>>164582582Ебать тебя рельсой. Серьёзно.Ты постишь куски кода и спрашиваешь "А чо буит работать?". Да хуй тебя, оленя, знает,чо работать будет. Кидай полный код (это и описание класса и основной блок,где кнопка твоя описана).
>>164582948>\tpublic void Student(){конструкторы так-то ничего не возвращают, даже void
>>164583010>Ты наркоман?Ну типа Student1.Name = 2, new Student(2) рибят почему у меня и там и там 2????777 Как сделать чтобы там 2 а там 3 7?7777777?7?7
>>164583072Да, меня уже просто от тупости опа подбамбливает, просто копировал-вставлял
>>164582948>В зависимости от количества переданных в конструктор аргументов программа сама выберет нужный конструктор.А если текстбокс пустой, там же все-равно 0 или "" передается и это будет считаться за аргумент и всегда будет работать 4 конструктор. И как быть?
>>164582582Оператор if, не?
>>164583240Проверка на клиенте.
>>164583240Ты вообще пиздец. Вот тут, еще раз >>164582355>А вообще, тебе нужно в гриде написать функцию, которая проверяет, заполнены ли поля, и выдает ошибку, если какое-либо поле не за
>>164583010блять, в датагридвью создаются две одинаковых строчки. хуле ты сам тупишь?
>>164583053вот же>>164569109
>>164582948Разве выберет? Пустая строка же тоже аргумент.
>>164583333объект создается до записи в датагридвью. Так что причем тут проверка в датагридвью? Я тебюе про то, что всегда будет работать тот конструктор, где якобы все текстбоксы заполнены, потому что пустой текстбокс - это 0 или "".
>>164583463Вот же ответы:>>164583380>>164583010
>>164583614Ну так сделай проверку пустых строк.
>>164583614А может сначала мы проверим на пустые поля,а потом уже будем создавать блять объекты,не?
>>164583630где ответы? ты видать посты перепутал.
>>164583463Во второй конструктор запишется, ведь у тебя в конструкторе 3 аргумента. Если бы конструктор вызывался без аргументов - писалось бы в первый конструктор, который дефолтный.>>164583614>объект создается до записи в датагридвью.НИ-ХУ-Я. Объект создается после того, как ты отошлешь данные из строк в конструктор.>Так что причем тут проверка в датагридвью?При том, что если тебе не нужно, чтобы ты пустые строки отправлял в конструктор, проверяй, чтобы поля были не пустые.
>>164583728Нет,я тебе процитировал два поста,которые прямо тебе говорят,что ты блять делаешь одно и тоже. А ты в глаза ебешься.
>>164583819
>>164583716И как проверим?типа вот атк что лиif (textBox1.Text != "") ; Student Stud1 = Student(Stud1.surname, Stud1.numClass);
>>164583819>НИ-ХУ-Я. Объект создается после того, как ты отошлешь данные из строк в конструктор.И хуле? Это все-равно до записи в датагридвью.
>>164583964Если имя НЕРАВНО нулю,вызвать конструктор без имени? Ты наркоман?
>>164583964Нет, если строка пуста, под текстовым полем должна появиться надпись, что строка пуста. И ничего не должно создаваться. И вот тут мы плавно подступаем к тестированию кода, выбрасывании ошибок и прочему говно.>>164584057И хули? Проверяй свои текстовые поля, если строка пуста, выбрасывай ошибку. Если не пуста, создавай объект. Потом пиши куда тебе это там надо, яебал твои датагридвью, не ебу, что это такое.
>>164584190Забыл
>>164584122А то, что он использует пустой иф, ставит точку с запятой, после чего запускает конструктор объекта, тебя не смутило?
>>164584372Пустой иф выглядит как ошибочная лишняя ;
>>164584501Ну и я про это. Иф есть, но нахуй, если нет строки кода, которая выполняется, если условие верно?
>>164584565Ну так поэтому я посчитал ; на ифе за очепятку,а конструктор - за выполнение при истине. И бомбанул.В общем, я убёг,удачи тебе с необучаемым =)
>>164584190Блять. Если мы всегда будем заполнять все поля обязательно, то и будет работь один конструктор. А надо два и более.
>>1645848021)сделай проверку на пустые поля 2)вызывай разные конструкторы по итогам проверок3)???4)профит!!
>>164584802Твои проблемы. Проверяй, если значение поля не равно false, то передавай его в конструктор. Если равно false, то не передавай его и все последующие. Потому что пустая строка и 0 == falseif (textBox1.Text != "") Student Stud1 = Student();if (textBox2.Text != "") Student Stud1 = Student(textBox1.Text);if (textBox3.Text != "") Student Stud1 = Student(textBox1.Text, textBox2.Text);else Student Stud1 = Student(textBox1.Text, textBox2.Text, textBox3.Text);Кстати, вот тут у тебя ошибка:Student Stud1 = Student(Stud1.surname, Stud1.numClass);Ты создаешь объект и пытаешься сослаться на его же методы. У тебя компилятор ошибку выкинет.
>>164585044 Как я разные буду вызывать, эсли мне предлагают принудительно требовать заполнить все поля.
>>164585060Там не ошибка, а опечатка.