Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 213 | 10 | 31
Назад Вниз Каталог Обновить

Аноним 08/11/17 Срд 11:41:13  164560507  
14529756496090.jpg (6Кб, 197x200)
Изучаем ООП
Надо создать класс с полями для хранения данных.
Пусть класс будет называться Ученик. Полями будут Фамилия, Имя, класс.
Допустим, что выводить эти данные будем в ДатаГридВью. А для ввода использовать текстбоксы.
class Student
{
private string Surname, Name;
private int NumClass
public surname {get;set}
public name {get;set}
public numClass{get;set}
}
Это создали. Далее надо прописать пользовательский конструктор. А вот тут я поймал клина.
Всмысле, а что там можно прописать? Какие данные использовать для инициализации? И как все это использовать на практике? Ну использовать правильно, имею ввиду.
Как в основном коде создавать эти объекты, не на уровне лексики, а вот используя ООП правильно? Я не понимаю.
Я вот сейчас просто создаю 1 объект, через текстбоксы присваиваю полям значения и записываю в датагридвью. Зачем мне конструкторы? И как делать правильно?
Аноним 08/11/17 Срд 11:42:00  164560541
я люблю говноко[...].webm (3962Кб, 1280x720, 00:00:26)
>>164560507 (OP)
>Зачем мне конструкторы? И как делать правильно?
Аноним 08/11/17 Срд 11:42:06  164560544
>>164560507 (OP)
Язык c#
Аноним 08/11/17 Срд 11:44:23  164560665
138.jpg (129Кб, 800x533)
>>164560507 (OP)
Не благодари
Аноним 08/11/17 Срд 11:45:52  164560752
>>164560665
Не благодарю.
А смысл? Нет, ну я понимаю на таких примерах для чего они, но на моем не могу понять. Может я чего неверно делаю? И не так использую свой класс.
Аноним 08/11/17 Срд 11:53:36  164561175
>>164560541
ну поячсните как использовать эти классы и конструкторы вот на моем примере. Вот я не догоняю.
Аноним 08/11/17 Срд 12:06:45  164561880
Конструктор нужен для удобства чтобы не вызывать дохуя функций и сразу в конструкторе все данные закинуть
Аноним 08/11/17 Срд 12:09:42  164562062
15089961889610.png (370Кб, 700x630)
>>164560507 (OP)
Конструктор это структура определяющая состав класса при инициализации, копировании или удалении, для всего этого есть свои формы конструкторов. Если мы говорим о конструкторе по умолчанию, который указывает что и чем заполнять при создании экземпляра, например в твоем примере:
class Student
{
private string Surname, Name;
private int NumClass
public surname {get;set}
public name {get;set}
public numClass{get;set}
Student(){NumClass = 0; surname = "aaa";...}
}
Таким образом при создании экземпляра, эти две переменные по умолчанию будут заполнены этими данными. Чо с этим можно сделать? Ну например можно прописать конструктор с условиями, для того чтобы инициализировать экземпляр, вводя данные в мейне:
class Student
{
private string Surname, Name;
private int NumClass
public 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); //будет создан экземпляр в котором значения номера класса, имени и фамилии будут заполненны данным в соотвествии с кодом конструктра с параметром.
}
Аноним 08/11/17 Срд 12:22:58  164562806
Вкатывальщики не нужны
Аноним 08/11/17 Срд 12:37:46  164563581
>>164562062
Ну а в моем случае? В моем конкретном примере? Для чего программисту может понадобиться вбивать данные: фамилия, имя, класс и тп в коде программы, если это делает пользователь? Как тут использовать конструктор?
Аноним 08/11/17 Срд 12:44:05  164563926
>>164563581
Ну смари, ты прописал конструктор как во втором примере Student(int Num, string Nm, string Srn){NumClass = Num; Name = Nm; surname = Srn; данные переменных Num, Nm, Srn будут вводиться пользователем с помощью интерфейса и дальше по твоему алгоритму сразу будет создан класс с такими параметрами
Аноним 08/11/17 Срд 12:45:25  164564000
>>164562806
Боишься что у тебя хлеб отберут талантливые и молодые?
Аноним 08/11/17 Срд 12:52:56  164564429
15069363991430.jpg (214Кб, 960x960)
>>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;
}
Аноним 08/11/17 Срд 12:57:39  164564676
>>164560507 (OP)
ты просто ещё мало изучил, прочитай про паттерны. абстрактную фабрику, например, освой. так у тебя просто недостаточно знаний, чтоб сразу понять, как на практике применять ООП
Аноним 08/11/17 Срд 13:02:57  164564976
source[1].jpeg (288Кб, 868x540)
>>164560507 (OP)
Класс это образ того что ты хочешь создать, у него есть свойства Имя,фамилия.
Когда ты задействуешь конструктор ты создаёшь объект класса, в нём уже прописано пользователем как он хочет чтобы выглядел этот объект:
Student Ivan = new Student("Ivan", "Dolvich", 19); Это уже конкретный объект у которого есть свои характеристики, ты можешь их объединить в массив и назвать массив как группу, вывести имена всех студентов из группы итд.
Ввод пользователя можно опять же проверять в конструкторе.
Аноним 08/11/17 Срд 13:05:43  164565117
Ебанутая дура, не можешь = не дано. Иди грузчиком ебаш или на завод.
Аноним 08/11/17 Срд 13:06:58  164565177
>>164563926
погоди, погоди. Я вот класс использовал только для доступа к полям, чтобы записать в них то, что введет в текстбокс пользователь и потом в датагридвью эти данные взять и вывести. Ну т.е. создаем объект класса

Student Stud1 = new Student();
Stud1.name = textBox1.Text;
Вот записали в поле то, что пользователь ввел в текстбокс.
Далее в датагрид вывели.

И...и... Все. Где тут надо создать второй объект и для чего? Как тут использовать конструктор? Где я делаю неправильно?
Аноним 08/11/17 Срд 13:08:27  164565247
>>164564976
>в нём уже прописано пользователем как он хочет
Погоди, а разве пользователь вот это прописывает?
Student Ivan = new Student("Ivan", "Dolvich", 19);
Это же не пользователь, а разработчик прописывает.
Аноним 08/11/17 Срд 13:10:28  164565370
>>164565117
Не слушай навозника не можешь = не хочешь. Как говорил мой препод, люди делятся на 3 типа , те кто понимают ООП сразу, таких 2% , те кто понимает но не запоминает, таких 97%, те кто не понимает, потому что не слушает это 1%. Врожденные таланты это бред, за всеми успешными людьми (кроме российских бизнесменов и чиновников) стоят годы упорного труда. Так что ебаш аноний, и будет дано тебе по заслугам твоим.
Аноним 08/11/17 Срд 13:12:30  164565473
>>164565247
Пользователь вводит эти данные через UI(textbox, combobox, datagreed..), на основе этого создаётся объект. А всё включая UI ты должен писать ручками
Аноним 08/11/17 Срд 13:13:11  164565506
>>164565177
ты уже заебал тупить конечно, но я готов помогать тебе, пушто сам тупил поболе твоего.
string name = textBox1.Text;
string surname = textBox2.Text;
Student Stud = new Student (name, surname);
Аноним 08/11/17 Срд 13:13:32  164565524
4ac.jpg (48Кб, 530x580)
>>164560507 (OP)
опять ты?
Аноним 08/11/17 Срд 13:14:29  164565572
Ну всмысле я понимаю, что вот это
Student Ivan = new Student("Ivan", "Dolvich", 19);
Создает новый объект и записывает в поля не 0 и "", а те значения, которые передаются. Но я не понимаю на практике для чего это? Вот конкретно эта конструкция, к примеру:
Student Ivan = new Student("Ivan", "Dolvich", 19);
Зачем создавать ее? К тому же, если мы изначально не знаем, какие данные будут введены в поля. Их вводят уже потом из текстбокса.
Аноним 08/11/17 Срд 13:15:49  164565650
>>164565524
знаток анальных пробок?
Аноним 08/11/17 Срд 13:16:54  164565708
>>164565572
Мудила, блядь, получи данные из текстбоксов своих и потом создай с ними объект.
Аноним 08/11/17 Срд 13:17:54  164565760
>>164565572
Пушто иногда бывает, что нужно заполнять экземпляры одинаковыми данными на некоторые поля,
например у тебя в классе есть 4 поля, из них 2 поля будут повторяться в 95% всего проекта, вот ты и пишешь конструктор для этих двух полей, а с остальными уже работаешь вне конструктора.
Аноним 08/11/17 Срд 13:18:44  164565804
>>164565708
я ему уже даже листинг скинул>>164565177 а он все равно ((((
Аноним 08/11/17 Срд 13:19:44  164565853
>>164565506
Ну я напишу этот код. И как тогда вызывать именно конструктор пользовательский, а не обычный? Ну вот в коде у меня будут получается:
>вот эта конструкция 1
string name = textBox1.Text;
string surname = textBox2.Text;
Student Stud = new Student (name, surname);

>и вот эта, конструкция 2
Student Stud1 = new Student();
Stud1.name = textBox1.Text;

А текстбокс он один. Какая из них будет тогда использоваться? Эти же конструкции одно и то же делают - записывают в поля значения.
Аноним 08/11/17 Срд 13:24:08  164566071
>>164565177
Менять поля класса просто так не рекомендуется.
Stud1.name = textBox1.Text;
Это плохой тон, у тебя есть однокурсник его зовут Дима, ты хуяк просто так по мгновению Диму поменял на Машу вроде бы неплохо так незя.
Должно произойти событие Метод который позволит изменить Диме имя. Т.е. ООП подразумевает что всё является реальными объектами с которыми есть взаимодействие.
Опять же делая так
Stud1.name = textBox1.Text;
Ты не вводишь проверку которую можно сделать в конструкторе
public void Student(string Name)
{
if(Name.Lenght < 10 && Name.Lenght > 1 && Name != "Залупа") Nm = Name;
}
Аноним 08/11/17 Срд 13:24:44  164566105
>>164565177
> погоди, погоди. Я вот класс использовал только для доступа к полям, чтобы записать в них то, что введет в текстбокс пользователь и потом в датагридвью эти данные взять и вывести. Ну т.е. создаем объект класса

> Student Stud1 = new Student();
> Stud1.name = textBox1.Text;
> Вот записали в поле то, что пользователь ввел в текстбокс.
> Далее в датагрид вывели.

> И...и... Все. Где тут надо создать второй объект и для чего? Как тут использовать конструктор? Где я делаю неправильно?

Блять.
Вот это:
> Student Stud1 = new Student();
У тебя сработал конструктор по умолчанию.
Но ты можешь сделать так:
Student Stud1 = new Student(textBox1.Text, textBox2.Text, textBox3.Text);

А потом поля этого Stud1 выводить в грид, в небо, в аллаха
Аноним 08/11/17 Срд 13:27:27  164566226
>>164566105
двочую!!!
Аноним 08/11/17 Срд 13:29:57  164566350
>>164566105
>У тебя сработал конструктор по умолчанию.
Погоди. Вот я пользователь. Передо мной окно программы. Там есть поле, которое я заполняю данным и кнопка "Записать". Я ввел, нажал на кнопку.
И что дальше? Внутри программы что активируется? Конструктор по умолчанию или пользовательский? У нас же есть

>вот эта конструкция 1
string name = textBox1.Text;
string surname = textBox2.Text;
Student Stud = new Student (name, surname);

>и вот эта, конструкция 2
Student Stud1 = new Student();
Stud1.name = textBox1.Text;

И они обе берут данные из текстбокса одного.
Аноним 08/11/17 Срд 13:31:58  164566458
Аноним 08/11/17 Срд 13:32:06  164566465
>>164566071
Но у меня проверка же будет при записи в свойствах класса. Потом допишу ее в set{} и все.
и как не менять поля класса? для чего они тогда, как не для хранения данных.
Аноним 08/11/17 Срд 13:37:01  164566717
>>164566458
я правда настолько тупой
Аноним 08/11/17 Срд 13:50:53  164567442
Блять бы либо тупой либо жирный
Аноним 08/11/17 Срд 13:56:21  164567720
>>164567442
ну поясни чтобы я понял. ну правда не догоняю
>вот эта конструкция 1
string name = textBox1.Text;
string surname = textBox2.Text;
Student Stud = new Student (name, surname);

Это записывает в поле name то что введет пользователь

>и вот эта, конструкция 2
Student Stud1 = new Student();
Stud1.name = textBox1.Text;

И эта делает то же самое. И какой из конструкторов-то будет работать?
Аноним 08/11/17 Срд 13:57:03  164567763
>>164560507 (OP)
> Я вот сейчас просто создаю 1 объект, через текстбоксы присваиваю полям значения и записываю в датагридвью. Зачем мне конструкторы? И как делать правильно?
Это уебанство. Вся суть ООП в том, что класс может включать в себя хуеву тучу объектов и наследуемых классов (в которых тоже Зуева тучу объектов). В твоей же программе ты все привязал к конкретным текстбоксам. А если тебе нужно получить эти данные из текстового файла на твоей пеке или из базы данных на сервере, например(да или тупо из других текстбоксов, а не тех что ты указал). Ты будешь создавать новый класс в котором данные получаются нужным способом. Но нахуя, если можно создать 1 класс и использовать его потом без изменений в любых программах независимо от того есть ли в ней три текстбокса из твоего примера или нет.
Жутко примитивное объяснение и местные кодеры меня обоссут скорее всего за него, но зато наглядно понятно.
Аноним 08/11/17 Срд 13:58:33  164567837
>>164560507 (OP)
Класс (в котором учатся) по английски - grade.
Аноним 08/11/17 Срд 13:59:30  164567889
был бы тут хоть один нормальный прогер, уже давно бы посоветовали разработать интерфейс IStudent и наследоваться от него классу, а то не ООП, а кака-то хуйня у ОПа получается
Аноним 08/11/17 Срд 14:02:21  164568053
>>164564000
>талантливые
>не может понять зачем нужны конструкторы, даже при наличии интернета с гуглом под рукой
Аноним 08/11/17 Срд 14:08:56  164568394
>>164567889
Ты тред-то читал? Посмотри внимательнее и подумай, какого это - объяснить опу что такое интерфейс, как его наследовать, и реализовывать.
Аноним 08/11/17 Срд 14:12:32  164568624
>>164568394
просто их группа недавно прошла интерфейсы, не мешай ему выебываться своей ахуенной программистостью
Аноним 08/11/17 Срд 14:15:32  164568794
>>164567763
ну и как это сделать?
Аноним 08/11/17 Срд 14:21:04  164569109
Вот глядите.

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
}
}
Аноним 08/11/17 Срд 14:29:59  164569717
https://pastebin.com/f2T1tL8p
Вот правильно реализованный класс для хранения данных, вместе с конструктором.

>Нужен интерфейс
Нет, сказано же, что это класс для хранения данных, обычный dto, какой нахуй интерфейс.

>Как реализовать конструктор
Берёшь и реализовываешь без задней мысли. Не делай пустых конструкторов для инициализации - это гарантирует, что поля будут заполнены все. Не делай конструкторов с частичной инициализацией, лучше используй optional подход. Пример https://pastebin.com/5jb4epaV - здесь фамилия необязательная, может быть null.

А еще делай поля иммутабельными, ибо это класс для хранения данных и ты не хочешь, чтобы его поля можно было менять напрямую, будут проблемы с многопоточностью. В примере это val.

Аноним 08/11/17 Срд 14:32:29  164569917
>>164567889
> IStudent
Тупица, у тебя у тебя сразу варниг вылезет о нарушении правил именования, школокодер-хелловорлдщик блять.
Потом ебись после тебя, думая а хули это я пишу iStudent а мне красным подчеркивает нахуй
Аноним 08/11/17 Срд 14:34:27  164570074
>>164569917
Нихуя подобного, это нормальная нотация для интерфейсов, даже видел как её используют. Только всё равно говно, я бы интерфейс именовал как Student, а имплементацию как StudentImpl, либо по смыслу, только в данном случае речь идёт о дто, а значит интерфейс не нужен
Аноним 08/11/17 Срд 14:36:19  164570218
>>164569717
Это язык Котлин что ли?
Аноним 08/11/17 Срд 14:36:51  164570256
>>164569109
>Student Student1 = new Student(); - создаем объект класса
Используется пустой конструктор - плохо.
Далее ты через сеттеры записываешь данные в созданый объект.

>Student Student 2 = new Student(textBox1.Text, textBox2.Text, textBox3.Text);
Вот так заебись. А пустой конструктор удали нахуй, он бесполезен.
Аноним 08/11/17 Срд 14:36:54  164570259
>>164570074
>даже видел как её используют
как минимум, эпам
Аноним 08/11/17 Срд 14:37:21  164570290
>>164570218
Да
Аноним 08/11/17 Срд 14:37:48  164570325
>>164569109
Вы подскажите мне, где тут я хуйню сделал? Какой будет конструктор работать?
Аноним 08/11/17 Срд 14:37:57  164570333
>>164570074
Все пишут сейчас с "i", але для, 2к17 на дворе, так модно и в тренде, намек на эппл, отсталый ты дед
Аноним 08/11/17 Срд 14:39:15  164570427
>>164570256
он бесполезен? Всмыле эта часть кода не будет работать? А если у меня условия стоит использовать оба конструктора? И по умолчанию и пользовательский?
Аноним 08/11/17 Срд 14:41:08  164570559
>>164560507 (OP)
В твоём случае конструктор можно не писать, он сам создастся нормальный, как и деструктор. А вообще хули такие вопросы лёгкие это что 11 класс?
Аноним 08/11/17 Срд 14:43:23  164570701
>талантливые
>не может понять зачем нужны конструкторы, даже при наличии интернета с гуглом под рукой
Аноним 08/11/17 Срд 14:44:18  164570758
>>164570427
Я не знаю на каком языке ты пишешь и можно ли вообще убрать пустой конструктор, но если можно, то лучше его не использовать.

Бесполезен не потому, что не будет работать. Работать будет, но это небезопасно. Если это объект для хранения данных - то в констукторе надо инициализировать все поля.

Вот пример почему:
Допустим у тебя есть вариант использовать пустой конструктор. Это значит, что тебе придёттся каждое поле задавать через сеттер. Предположим, что у тебя серьёзная программа и сам класс имеет много полей. Пустым констурктором ты развязываешь себе руки заполнить класс постепенно, в разных слоях, как угодно. И в определённый момент ты можешь забыть последовательность его заполнения и ошибёшься - попробуешь вытащить или использовать какое-либо поле, но оно не будет задано. Это приведёт к ошибкам или крешам.
В случае конструктора на все поля + optional подхода ты заранее знаешь какие поля могут быть пустыми и это сможешь обработать без ошибок.
Аноним 08/11/17 Срд 14:45:36  164570846
>>164560507 (OP)
private name;
private surname;
private numClass;
public function get(name){
return this->name;
}
Аноним 08/11/17 Срд 14:47:26  164570962
>>164570846
private string Surname, Name;
public surname {get;set}
public name {get;set}

проиграл
Аноним 08/11/17 Срд 14:47:48  164570985
>>164560507 (OP)
>private string Surname, Name;
>public surname {get;set}
>public name {get;set}

проиграл
Аноним 08/11/17 Срд 14:48:10  164571008
ООП не нужно же.
Аноним 08/11/17 Срд 14:49:32  164571089
>>164570758
на c#
>Бесполезен не потому, что не будет работать. Работать будет, но это небезопасно.
Вот я и понять тогда не могу. Какой конструктор будет использован в моем примере? текстбоксы-то одни и те же. Куда данные пойдут в студент1 или студент2? пустой конструктор будет использован или пользовательский? Как понять?
Аноним 08/11/17 Срд 14:50:37  164571164
>>164570985
не блиа. не дописал там. set{Name = name}
Аноним 08/11/17 Срд 14:51:16  164571198
>>164571008
На чем божишь?
Аноним 08/11/17 Срд 14:52:50  164571301
>>164571164
и еще раз проиграл с кодстайла
Аноним 08/11/17 Срд 14:53:08  164571321
>>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);
Аноним 08/11/17 Срд 14:53:39  164571353
>>164571301
а в чем именно проиграл? Все же как учат везде.
Аноним 08/11/17 Срд 14:53:49  164571366
>>164571089
Не зависит от текстбоксов.
Если ты делаешь Student() - пустой, если Student("asd", "asd", 6) - тот что с полями.

Использование конструктора зависит от того что ты в него передаёшь, а не откуда берёшь.
Аноним 08/11/17 Срд 14:59:23  164571709
>>164571198
> На чем божишь?
На паскале.
Аноним 08/11/17 Срд 15:00:28  164571789
изучаю Джава

сыч 25 лвл
Аноним 08/11/17 Срд 15:02:01  164571888
>>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); - а это типа пользовательский конструктор.
Аноним 08/11/17 Срд 15:03:00  164571967
В чём твоя проблема? Ты не понимаешь для чего нужен конструктор?
Аноним 08/11/17 Срд 15:05:40  164572123
>>164571888
Запускать то что написал пробовал?
Аноним 08/11/17 Срд 15:10:07  164572381
>>164566071
лол. Код почти как на Джаве. Я правильно понимаю что в случае чего можно будет легко перекатиться на C?
Аноним 08/11/17 Срд 15:11:05  164572423
>>164572123
ну запускается, да. Но как понять какой из них работает-то?
Аноним 08/11/17 Срд 15:11:59  164572476
>>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); - а это типа пользовательский конструктор.
Аноним 08/11/17 Срд 15:16:51  164572755
>>164572423

Видимо действительно не твоё это.
Аноним 08/11/17 Срд 15:22:24  164573055
>>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);
Метод записывает данные в переменные второго объекта

Два конструктора, два объекта, два метода
Аноним 08/11/17 Срд 15:24:18  164573172
>>164573055
>Что дальше? Какой участок кода будет работать?
Работать буду оба, в порядке очереди, в чем проблема? Если конечно нет ошибок и одно может работать без другого
Аноним 08/11/17 Срд 15:27:44  164573372
>>164571353
private variable;
public Variable;

так вас учат, а не той херне, что ты написал
Аноним 08/11/17 Срд 15:27:58  164573382
>>164573172
Ну а как тогда сделать так чтобы использовались и конструктор по умолчанию и пользовательский в моём примере??
Аноним 08/11/17 Срд 15:28:39  164573420
>>164572381
в джаве коллекции какие-то по голове пизданутые
в остальном внешне всё ощено похоже
Аноним 08/11/17 Срд 15:28:48  164573429
>>164573372
Ну да, поля с маленькой методы с большой
Аноним 08/11/17 Срд 15:30:28  164573537
>>164573429
нихуя
Аноним 08/11/17 Срд 15:37:10  164573922
>>164573382
Они и так используются. Проблема не в этом. Ты нагородил ахинеи. Начни заного.

Ты вообще понимаешь как и что у тебя должно работать? Возьми листок и ручку. Сформулируй в одном предложении что делает программа. Напиши сверху листа. Ниже нарисуй блок схему: какие данные вводятся и что должно получится в результате. Подумай, какие методы и классы тебе нужны, какие переменные. Распиши логику на бумаге. Потом переделай. И ещё раз. Теперь иди пиши код.
Аноним 08/11/17 Срд 15:38:56  164574021
>>164573420
У меня уже появляются мысли о дропе, но я уже вложил 800 рублей (вклад уровня /b) в учебник и его надо бы отработать. Сейчас 6-я глава из 15.
Аноним 08/11/17 Срд 15:45:15  164574345
>>164573922
В задании написано, что надо использовать оба конструктора: и пользовательский, и по умолчанию. Т е. Сперва создать класс имеющий поля для хранения данных, а потом про инициал зимовать с помощью конструкторов.
Ну и как это сделать? Я вот не догоняю.
На простых примерах вроде ясно, но вот на конкретно моём не понимаю.
Аноним 08/11/17 Срд 15:57:58  164575051
Никто не подскажет?
Аноним 08/11/17 Срд 16:09:28  164575732
>>164574345
Сформулируешь нормально вопрос - помогу. Догадываться что такое "про инициал зимовать" - полный пиздец.
Аноним 08/11/17 Срд 16:16:05  164576146
>>164565853
Ты пеня...
У тебя есть два РАЗНЫХ конструктора. Первый не принимает параметров, второй принимает два (или сколько тебе нужно) параметров. То есть перегруженный и не перегруженный.
Если хочешь вызвать не перегруженный, пишешь - Student nSt = new Student();
перегруженный - Student nSt = new Student(name, surname, numClass);
Аноним 08/11/17 Срд 16:20:01  164576389
>>164576146
>>перегруженный и не перегруженный
Он называет их пользовательский и обычный, соответственно

мимо
Аноним 08/11/17 Срд 16:34:42  164577287
>>164572423
Поставь точки останова и пройди код по шагам
Аноним 08/11/17 Срд 16:34:51  164577297
>>164575732
>"про инициал зимовать"
Как-будто так трудно догадаться, что это проинициализировать.
Вопрос?
Задание стоит так: Создайте класс Студент с полями Фамилия Имя Класс.
Далее создать объекты класса. Объекты должны быть созданы с помощью конструктора по умолчанию и пользовательского.
Я создал класс. В нем поля. А вот как мне сделать так, чтобы у меня были два объекта, если оба берут данные для полей из текст-бокса?
Аноним 08/11/17 Срд 16:37:26  164577441
>>164576146
Как вызывать их на уровне синтаксиса я знаю. Суть в другом. Я не понимаю как их использовать на моем примере. >>164569109
Я же говорю, вот я создал два объекта и они, выходит, что принимают одни и те же данные из текстбокса и как мне тут подсказывают выполняются друг за другом. Ну и что-то тут не так, верно? Ну и как использовать оба конструктора и моем примере?
Аноним 08/11/17 Срд 16:41:23  164577679
Тащемта секретов тут нет
class Student:
....def __init__(self, family, name, num_class):
........self.family = family
........self.name = name
........self.num_class = num_class
student = Student('Vasua', 'Pupkin', 3)
Аноним 08/11/17 Срд 16:46:09  164577982
>>164577679
суть не в том. Я кажется не могу понять на уровне общей архитектуры.
Еще раз.
Вот есть 3 текстбокса и кнопка записать.
Есть датагридвью, который ранее записанное в эти текстбоксы сохраняет и отображает списком.
И как мне тут использовать конструкторы для создания объектов?
Аноним 08/11/17 Срд 16:48:02  164578109
>>164577441
Во втором объекте у тебя поля пустые, ты в них ничего не присвоил.

Не совсем понятно что у тебя не работает. Скажи как должно быть и что происходит на самом деле.
Аноним 08/11/17 Срд 16:50:19  164578227
578846515135.jpg (61Кб, 500x375)
>>164569717
> Kotlin
Аноним 08/11/17 Срд 16:51:00  164578271
>>164578109
почему пустые? разве так не считываются данные с полей?
Аноним 08/11/17 Срд 16:52:52  164578374
>>164578109
>Не совсем понятно что у тебя не работает.
Да я же говорю уже 10 раз:
Задание стоит так: Создайте класс Студент с полями Фамилия Имя Класс.
Далее создать объекты класса. Объекты должны быть созданы с помощью конструктора по умолчанию и пользовательского.
Я создал класс. В нем поля. Ну и как мне тут использовать оба конструктора? Мне надо создать 2 объекта получается. А где их тут уместить? Чтобы это выглядело нормально?
Аноним 08/11/17 Срд 16:54:23  164578469
>>164578374
Даун, ща, катку доиграю и объясню почему ты даун
Аноним 08/11/17 Срд 16:54:37  164578486
ДИМОЧКА пришёл в офис очень несчастным и подавленным. Всё, что он хотел, это просто поесть в абсолютной тишине наедине с собой. — Что стряслось? — прервал раздумья ТИМЛИД.
— Мы программируем, как мудаки — нервно ответил ДИМОЧКА, — У всех программистов есть по машине, крутому телефону и толпе шлюх! А у нас нету нихуя совершенно!
В офисе нависла тишина. Через несколько секунд ТИМЛИД прервал её:
— Послушай, — обратился он к ДИМОЧКЕ , протянув ему ОПЕРАТИВКУ.
— Что это?
— Да послушай говорю.
ДИМОЧКА прислонил ухо к ОПЕРАТИВКЕ и услышал шипение.
— Ну и что? — спросил ДИМОЧКА .
— Шипит?
— Шипит.
— Это она так нагрелась от нашего кода! — весело сказал ТИМЛИД.
— И что?
Немного помолчав, ТИМЛИД сказал:
— Не важно, сколько у тебя денег, ДИМОЧКА . Зачем тебе они, если у тебя на лице кусок расплавленной пластмассы, а я выпишу денег на новую оперативку и распилю бюджет, только для этого ты и нужен, мудак...
После этих слов ДИМОЧКА повесился.
Аноним 08/11/17 Срд 16:54:57  164578513
К нам в айти отдел пришёл новый сотрудник. Нужно сказать, что у нас в отделе работают почтенные крестогоспода. Новичка посадили за компьютер, но не успели даже дать задание, как он начал кодить. Начальник из любопытства подошёл посмотреть, что он там написал. В течении секунд тридцати он побледнел, затем посинел, затем покраснел, а потом трясущимся от нескрываемого гнева голосом сказал:
- Это же Абстрактная фабрика! На чём ты кодил до этого?
- На Джаве.
- Жабапидор! - в один голос заорали все 20 человек.
- Жабапидор! Жабапидор! Жабапидор!
Кто-то включил сирену. Над дверьми замигали красные лампочки тревоги. На окнах мгновенно сомкнулись плотные жалюзи. В офисе одновременно бывает два отдела человек по сорок. На обеде вся эта толпа собирается на первом этаже, где яблоку негде упасть. А поэтому, как охранники ни пытались вырвать джавапидора из рук разъяренной толпы, им это не удалось. По всему офису стоял сплошной рев:
- Жабапидор!
В коридоре его сразу же сбили с ног. Используя галстук как поводок, его тащили через весь коридор, передавая из рук в руки. Поэтому получалось так, что никакого движения в коридоре не происходит, но и джавапидора тоже нет. Его заволокли в каптерку под лестницей, где хранятся ведра и швабры с тряпками, и там закрыли. Под конец рабочего дня он всё же появился. За получасовой обед его изнасиловали несколько человек. Сопротивляться было бы бесполезно. Через день на нем чистым оставалось одно лицо, а на теле не было живого места. Он превращался в мразь, в животное. Его били все, даже дизайнеры и уборщицы. Его заставляли есть говно и опарышей. В очко ему совали битые лампочки, живых птиц и змей. Он стал «дельфином» – в нужнике пятнадцать дырок, он ныряет в первую, выныривает, ныряет во вторую... И так – до конца. От него постоянно воняло. С ним невозможно было рядом находиться. Был такой случай: к нам устроился работать Степаныч. Степаныч сидит на толчке, а кто-то снизу через очко хватает его за яйца. Степаныч с воплем вылетает в коридор без штанов. Напротив - айти отдел. Смех не стихал долго... Потом Степаныч забил его кирзовым сапогом насмерть. Менты как узнали, что сдох джавапидор даже дело заводить не стали.
Аноним 08/11/17 Срд 16:55:15  164578530
я начинаю кажется догадываться. Подтвердите так это или нет
есть 3 текстбокса.
создаем 4 объекта.
если заполнены все 3 текстбокса, то работает конструктор в котором 3 аргумента
если заполнены 2 текстбокса, то конструктор с 2 аргументами
если заполнен 1 текстбокс, то конструктор с 1 аргументом
если все 3 поля пустые, то конструктор по умолчанию

Так можно сделать?
Аноним 08/11/17 Срд 16:55:27  164578545
Есть ли в природе хоть один жавапидорас, который знает что-нибудь кроме джавы? Ну хотя бы ту же Скалку, работающую на jvm. Причем `знает' не в смысле запускал 2 раза и посчитал рекламную хуйню с сайта, а действительно хорошо знает. Работал минимум полгода, знает, решению каких проблем адресован язык, знает, зачем он нужен и какие преимущества имеет перед джавой, хорошо понимает, какие принципы заложены в систему типов и нахуя они вообще туда заложены, знает, как она жутко она фейлит на оптимизации хвостовой рекурсии, знает, как она затирает типы и вызывает методы через рефлексию, знает, почему на уёбищной jvm по-другому не сделать, знает, почему неленивые языки - говно, знает, что такое abstraction penalty и почему любой джаваынтырпрайз адово тормозит, несмотря на превосходные результаты на шотауте, самый лучший мусоросборник и hotspot до которого всему немейнстиму в говне плыть и плыть, знает, почему джава - не язык программирования для нормальных людей, а говно для переквалифицировавшихся таксистов? Нет таких? Ни одного? Только студентота и дрочеры на абстрактные фабрики абстрактных аннотаций виртуальных плагинных шин? Так я и знал. И это программисты. Говно какое-то. Пидоры блядь.
Аноним 08/11/17 Срд 16:55:47  164578575
Ёбаным жабоиндусам, напоминаю разницу. Зоопарк вопросов:
- где замыкания?
- где свойства?
- где шаблоны? Разработчики Sun вынуждены только облизываться. Даже генерики, введённые в 5-й версии Java — не более, чем syntactic sugar. Дотнетовские генерики это реально поддерживаемые платформой типы, которые расширяются на лету при загрузке, котрые оптимизируются JIT-компилятором. Для Java генерики существуют только в коде и ни JIT, ни загрузчик классов их никогда не видит. Поэтому проблемы боксинга, преобразования типов в runtime просто скрыты от программиста.
- где делегаты/евенты?
- где partial-классы?
- где детерминированное освобождение ресурсов (ключевое слово using + интерфейс IDisposable)?
- где оптимизация JVM для расширений процессоров?
- где аналог linq и в частности удобные мапперы?
- где расширения методов класса?
- где скрытая имплементация интерфейсов?
- где перегрузка параметров функций?
- где нормальное потребление памяти приложением?
- где быстрая работа приложения?
- где нормальные иде, с полноценными дизайнерами?
- где пользовательские value types?
- где методы у инстансов value types?
- где var и анонимные типы
- где перегрузка операторов?
- где оптимизиции хвостовых вызовов? (в свете фунционального хайпа это должно вызывать некоторый батхёрт)
- Где чёткое разделение домены и сборки? Это не учитывая, целый ворох технологий недоступный понимаю жабоиндусов, такие всякие сильверлайты/вин-веб/формочки, впф, XNA, список можно продолжать бесконечно, как впрочем и список ущербности жабы...
Всего, чего нет в жабе, автоматически объявляется хуитой, как только это появляется в жабе, это автоматически становится нехуитой. При этом, требуется сделать вид, что хуитой это называл кто-то другой.
Аноним 08/11/17 Срд 16:58:07  164578709
>>164564976
Письмак Алексей Евгеньевич, залогиньтесь
Аноним 08/11/17 Срд 17:02:35  164578999
>>164577297
Создай другой текстбокс под второй объект или создавай объекты поочередно, меняя значения в текстбокса перед каждым созданием или вводи значения в текстбокс через запятую, разбивай строку на части и для каждого значения делай объект или забей хуй на текстбоксы вообще, в задании про них ни слова. Куча вариантов же, как хочешь так и делай.
Аноним 08/11/17 Срд 17:03:05  164579029
>>164560507 (OP)
>Зачем мне конструкторы?
Инициализации для.
Аноним 08/11/17 Срд 17:05:57  164579182
>>164578530
Нахуя ты не понял.
Аноним 08/11/17 Срд 17:06:02  164579190
>>164578999
Но это же хуита какая-то. Зачем текстбоксы создавать для второго объекта отдельного? А если объектов будет 3? А 4?
То ли я не понимаю истинного назначения этих констркуторов, то ли хуй знает. Вроде на простых примерах все ясно. А тут нет.
Аноним 08/11/17 Срд 17:06:32  164579218
>>164579182
а как тогда?
Аноним 08/11/17 Срд 17:07:08  164579259
>>164579029
>Инициализации для.
в моем примере для чего они?
Аноним 08/11/17 Срд 17:08:00  164579314
>>164579190
Да блядь, назначение конструктора это выделение в куче памяти под объект. Помнишь new delete вот это вот всё, не ебу какой там у тебя язык, вот это та же хуета, только для класса. Конструктор и деструктор.
Аноним 08/11/17 Срд 17:08:43  164579369
>>164579259
Они везде для инициализации.
Аноним 08/11/17 Срд 17:09:21  164579415
>>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#, тебе будет несложно, ведь синтаксис схож.
Аноним 08/11/17 Срд 17:09:53  164579450
>>164579259
Бля, у тебя глава про конструкторы? Прочитай блять внимательно теорию. А потом ещё загугли и ещё почитай.
Аноним 08/11/17 Срд 17:10:14  164579474
>>164579314
>>164579369
Ну это ясно. Выделение памяти.
Как в моем сраном примере использовать два конструктора? Я этого не понимаю.
Аноним 08/11/17 Срд 17:10:47  164579508
>>164579190
> Но это же хуита какая-то. Зачем текстбоксы создавать для второго объекта отдельного?
Да хуй его знает, что тебе надо. Я тебе еще способов накидал.
> То ли я не понимаю истинного назначения этих констркуторов, то ли хуй знает. Вроде на простых примерах все ясно. А тут нет.
Как связаны конструкторы и текстбоксы? Ты просто за какими-то хром присваиваешь двум объектам одни и те же данные из одних и тех же полей.
Аноним 08/11/17 Срд 17:13:47  164579693
>>164579259
Для того, чтобы создавать объекты учеников на основе класса "Ученик". Конструктор дает тебе возможность создать объект на основе класса этого конструктора.
Аноним 08/11/17 Срд 17:13:56  164579706
>>164579474
Причем тут память? Назначение конструкторов - создавать из шаблона (класс) конкретный экземпляр (объект).
Аноним 08/11/17 Срд 17:14:47  164579759
>>164579474
Какие два? Для того, чтобы заебись копировалось нужен конструктор копирования

Конструктор копирования нужен нам для того, чтобы создавать «реальные» копии объектов класса, а не побитовую копию объекта. Иногда это принципиально важно. Такую «реальную» копию объекта надо создавать в нескольких случаях:

когда мы передаем объект в какую-либо функцию в виде параметра;
когда какая-либо функция должна вернуть объект класса в результате своей работы;
когда мы в главной функции один объект класса инициализируем другим объектом класса.
Конструктор по умолчанию создаётся, когда ты не указал конструктора вообще, как ты там делал до этого, на самом деле конструктор у тебя всё равно был.
Аноним 08/11/17 Срд 17:16:23  164579866
>>164579415
>// вот тут ты создаешь 2 объекта класса

Т.е. чтобы добавить строчку в датаГрид я такой открываю экзешник в визуал студио и пишу там:
>Student student2 = new Student("Абу", "Нариманов", "1Б");

>Но на практике должна быть програмка
В том и суть, что я не понимаю как это на практике сделать. То что ты написал я уже написал до тебя и это понятно. Мне именно Но на практике должна быть програмка, при помощи которой пользователь мог бы вписать данные в поля (input), а твоя програмка на основе этих данных сама создавала объект при помощи конструктора Student.
Вот конкретно у меня есть 3 текстбокса и кнопка записать в датагридвью. Как мне сделать так чтобы тут создавался новый класс по конструктуру пользовательскому, да еще и по умолчанию тоже.
Вот это можешь мне объяснить?
Аноним 08/11/17 Срд 17:17:45  164579955
>>164579508
>Как связаны конструкторы и текстбоксы?
в текстбоксе пользователь вводит данные, которые записываются в поля объекта.
Аноним 08/11/17 Срд 17:18:44  164580009
>>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;
}

Эта дрисня называется перегрузкой методов. А если у тебя будет студент, который вообще нихуя не знает, ты можешь создать еще один конструктор, который будет задавать пиздюку дефолтные имя, фамилию и класс.
Аноним 08/11/17 Срд 17:20:37  164580138
>>164579693
>Для того, чтобы создавать объекты учеников на основе класса "Ученик".
Бляяяяя!!! В теория я знаю. Ты можешь мне пояснить как на моем примере это будет выглядеть?
Аноним 08/11/17 Срд 17:21:18  164580176
>>164580138
https://stepik.org/lesson/546/step/1?unit=869
На, короче. Смотри и вникай. Там все объяснено.
Аноним 08/11/17 Срд 17:21:19  164580178
>>164579866
У тебя недостаточно знаний, чтобы написать эту програмку. Учи язык нормально, а не прыгай с основ в написание пользовательского интерфейса. Найди нормальную книгу и по ней учись. Я не могу объяснить тебе, как сделать подобную программку, потому что ты не знаешь основ, которые используются для её написания.
Так понятно?
Аноним 08/11/17 Срд 17:22:25  164580259
>>164580138
>>164580009
Держи. Так это будет выглядеть в твоем примере.
Аноним 08/11/17 Срд 17:23:07  164580312
>>164580009
Бляяя. Я уже визжать сейчас буду.
С такими примерами я знаю как это работает.
Я не пойму как конкретно на моем примере это сделать? С текстбоксами, куда пользователь сам вводит данные. Вот как?
Аноним 08/11/17 Срд 17:23:49  164580358
>>164580312
Да иди нахуй, кого ты наебать пытаешься? Никто ничего за тебя делать не будет, разбирайся на том примере и делай сам.
Аноним 08/11/17 Срд 17:25:04  164580439
>>164580178
Каких основ, мать твою? Каких знаний?
3 текстбокса. Из них берется информация. Что тут сложного? Какие пользовательские интерфейсы?
Аноним 08/11/17 Срд 17:25:52  164580507
>>164580312
> С текстбоксами, куда пользователь сам вводит данные
name, surname=input().split()
man=Man(name,surname)
Чёта вроде такого будет.
Аноним 08/11/17 Срд 17:26:29  164580549
>>164580358
на каком примере?
Вы мне все суете под нос то, как программист может быстро и легко создавать новые объекты класса, пользуясь конструктором. Это мне ясно.
Мне не ясно как создавать эти объекты, используя конструктор при вводе данных из текстбокса.
Аноним 08/11/17 Срд 17:26:52  164580573
>>164580312
>>164580178
>Какие пользовательские интерфейсы?
3 текстбокса
>Что тут сложного?
Ничего, но ты же завис на этом.
Вот у тебя есть 3 текстбокса, из них ты берешь информацию, закидываешь её в конструктор, и запускаешь. Если ты не знаешь, как вытащить данные из текстбоксов, то учи основы.
Аноним 08/11/17 Срд 17:26:57  164580585
>>164580549
>>164580507
Вот это переведи на свой язык и всё.
Аноним 08/11/17 Срд 17:27:24  164580617
>>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( //твои охуительные параметры//);
}
Аноним 08/11/17 Срд 17:29:58  164580776
>>164580439
>Каких основ, мать твою?
Как брать строки, разбивать их по словам и засовывать каждое слово в элемент массива.
>Каких знаний?
Знаний о массивах
Аноним 08/11/17 Срд 17:30:49  164580826
>>164580573
Блять. Как вытащить данные я знаю - это вообще не проблема. Проблема в другом.
Мне надо использовать несколько конструкторов. Т.е. создавать несколько объектов. И я не вижу того, как это сделать на моем примере. Я уже умею создавать объект, использовать конструктор по умолчанию и выводить все это в датаградвью. Я не могу понять как тут использовать два объекта с разными конструкторами.
Аноним 08/11/17 Срд 17:33:26  164580998
>>164580617
Что сложнее?
У меня уже есть класс с полями.
В основном коде создается объект класса.
В поля объекта вносят данные из текстбоксов.
В датагридвью все это отображается.
Все работает.
Теперь надо как-то использовать два конструктора. Вот тут и проблема, что я не понимаю как их тут можно правильно использовать.
Аноним 08/11/17 Срд 17:34:00  164581030
>>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Б") // создаем объект при помощи второго конструктора.
Аноним 08/11/17 Срд 17:34:21  164581058
>>164580617
О да, да. Давай напиши еще раз, уже 10. Ты не понимаешь что я спрашиваю?
Аноним 08/11/17 Срд 17:34:57  164581103
>>164580776
Зачем мне тут массивы?
Аноним 08/11/17 Срд 17:35:43  164581155
>>164580507
class Man:
... def __init__(self, name, surname):
... self.name = name
... self.surname = surname
... def __str__(self):
... return self.name+" "+self.surname
name, surname=input().split()
man=Man(name,surname)
print(man)

Вот типа того.
Аноним 08/11/17 Срд 17:36:29  164581211
>>164580776
>Как брать строки, разбивать их по словам и засовывать каждое слово в элемент массива.
Переходи на питон>>164581155
Аноним 08/11/17 Срд 17:37:52  164581321
>>164581211
Не, спасибо, я C# учу, java немного знаю и на js работаю. Питон колупал в свое время. Больше всего мне java вкатила.
Аноним 08/11/17 Срд 17:37:56  164581325
>>164581030
>Student student1 = new Student("Вася", "Пупкин")
Сука. У меня уже истерика.
Т.е. я открываю это программу свою. Вижу там датагридвью с информацией, списком. Вижу текстбоксы для ввода информации для новой строчки. И кнопку записать.

И что я делаю? Правильно нахуй! Открваю эту программу через вижуал студию и пишу там вот эту хуету. потом перекомпилирую ее.

Еще раз. Еще раз я повторю. Мне не надо создавать новый объект в коде. Это я умею. Мне надо, чтобы этот объект по конструктуру создавался сам исходя из того, что вводит пользователь в текстбокс.
Аноним 08/11/17 Срд 17:39:25  164581428
>>164581321
Тогда енжой ёр пердолинг.
Аноним 08/11/17 Срд 17:40:08  164581473
>>164581030
>>164580617
>>164580009
>>164579415

Четыре ебаных раза, кто-то мне повторяет одно и то же. 4 ебаных раза, я ему объясняю, что мне нужно другое. Я правда так хуево объясняю что мне нужно?
Аноним 08/11/17 Срд 17:40:20  164581486
>>164581321
>name, surname=input().split()
>Как брать строки, разбивать их по словам и засовывать каждое слово в элемент массива.
>пердолинг
Типа вот так это делается в питухоне.
Аноним 08/11/17 Срд 17:40:41  164581513
>>164581058
О да, да. Давай напиши еще раз, уже 10. Ты не понимаешь что я спрашиваю?
Ты хату спрашиваешь. Твоя проблема в том что ты пытаешься получить одновременно 2 набора данных из своих текстбоксов. Эта проблема никак не связана с конструкторами и их количеством.
Аноним 08/11/17 Срд 17:40:52  164581532
>>164581486
Ну инпут это ввод пользователя.
Аноним 08/11/17 Срд 17:42:14  164581639
>>164580998
>>164580826
Ты на редкость упертый даун. Знаешь как это со стороны выглядит?

Стоит школьник в подземном переходе и спрашивает у каждого: "Дядь, мне в школе задали дилдак в жопу засунуть. Я засунул дилдак, огурец и бусы. Нужно ещё яйца резинкой перевязать, подскажи как сделать?

Мимопроходилы задумчиво чесали лысины и отвечали: "Так ты уже засунул дилдак, задание выполних, хули надо?". Другие на собственном примере наглядно показывали что, как и куда. Третьи утверждали, чтобы выполнить третье желание нужны резинка и яйца, чего у школьника не было...


Короче блять, ты изобретаешь ебливые велосипеды в которые хочешь засунуть ещё велосипедных костылей просто потому что НАДА КАКТА ИСПОЛЬСАВАТЬ.
Аноним 08/11/17 Срд 17:42:49  164581695
>>164581325
Блядь, как ты заебал. Вот сейчас у меня реально бомбануло, ебаная ты зелень. Держи сажи себе в ебало, мразь.

Ты не знаешь, как связать несколько полей на страничке с кодом, сука ты тупая. Ты не умеешь нормально формулировать запросы.

Так блядь, формулирую вопрос, который ОП должен был задать в самом начале:

"Господа, у меня проблема.

У меня есть страница с 3 полями ввода. И есть код, создающий объект класса Student. Мне надо передать данные из этих 3 полей в конструктор Student(Name, Surname, numClass), но я не знаю, как передать эту информацию."

>>164581473
Ты реально ужасно передаешь информацию, долбоеб.
Аноним 08/11/17 Срд 17:43:04  164581714
>>164581486
А теперь открой либу и посмотри как это реализуется там.
Аноним 08/11/17 Срд 17:43:33  164581751
>>164581639
>>164581695
Вот
Аноним 08/11/17 Срд 17:44:27  164581814
>>164560665
я даун, поясните мне что изображено на пике
Аноним 08/11/17 Срд 17:44:32  164581820
>>164581714
Но зачем? Зачем тратить время и силы на пердолинг, язык должен быть твоим инструментом, средством выражения мысли, а не тем, с чем тебе приходится бороться и пердолиться постоянно.
Аноним 08/11/17 Срд 17:44:57  164581851
>>164581513
Я не пытаюсь. В задании сказано использовать 2 контрструктора. Я пытаюсь придумать как их сипользовать. Но не выходит. Вот я и спрашиваю. Мне тут пишут: Бля, вот как это делается:
Student student1 = new Student("Вася", "Пупкин")
Но мне не это нужно. В моем условии даннеы вводятся из текстбокса и никак иначе.
Аноним 08/11/17 Срд 17:45:10  164581871
>>164581325
Это потому что ты ёбаный олень.
Ты описываешь ебучие конструкторы в классе.
Конструкторы описываешь с учетом нескольких вариантов (1 текстбокс пустой, 2 заполненных - из заполненных взять значения, вместо пустого присвоить значение по умолчанию и т.д.)
А потом в основном блоке нажатием на кнопку просто вызываешь этот ебучий конструктор, присвоив переменным конструктора данные из текстбоксов.
>>164581473
Норм,просто к нему подход другой нужен
Аноним 08/11/17 Срд 17:45:50  164581908
>>>164581325
>Мне надо, чтобы этот объект по конструктуру создавался сам исходя из того, что вводит пользователь в текстбокс.

В чём проблема то? Опиши логику своих действий и укажи место где не состыковка.

И постарайся получше, объясняешь ты как истеричная 13летняя пизда
Аноним 08/11/17 Срд 17:46:07  164581931
>>164581871
>Норм,просто к нему подход другой нужен
Так это ОП пишет, что он хочет одно, а ему предлагают другое.
Аноним 08/11/17 Срд 17:46:42  164581974
>>164581695
>У меня есть страница с 3 полями ввода. И есть код, создающий объект класса Student. Мне надо передать данные из этих 3 полей в конструктор Student(Name, Surname, numClass), но я не знаю, как передать эту информацию."

Ты неверно понял. Как передать я знаю. Я еще раз повторюсь, что у меня все работает как надо. Я не могу использовать 2 конструктора.
Аноним 08/11/17 Срд 17:47:00  164581999
>>164581814
Ну бля правда объясните, минут 5 уже пялюсь и не могу понять.
Аноним 08/11/17 Срд 17:48:20  164582094
>>164581820
Двачаю.
Аноним 08/11/17 Срд 17:49:12  164582141
>>164581871
>Конструкторы описываешь с учетом нескольких вариантов (1 текстбокс пустой, 2 заполненных - из заполненных взять значения, вместо пустого присвоить значение по умолчанию и т.д.)

НУ а так хули я это написал вот тут>>164578530 еще час назад назад и мне сказали, что я ХУЙ.
Аноним 08/11/17 Срд 17:49:13  164582143
>>164581931
Так он не понимает нихуя,что ему предлагают именно то,что нужно. Потому что тупой ебан. А значит нужен следующий подход - либо объяснить ему,что он тупой ебан и сам нихуя не понимает,чего хочет, либо забить хуй и кинуть ссаными тряпками.
Я первый вариант попробовал,если не поймёт,пойду по второму - сагану и скрою
Аноним 08/11/17 Срд 17:49:14  164582146
>>164581999
Иллюстрация-аналогия к какому-то понятию из программирования. Не благодари.
Аноним 08/11/17 Срд 17:50:12  164582204
>>164581974
>что у меня все работает как надо
>Я не могу использовать 2 конструктора

Вся суть. Ставлю пол хаты на то что ты не сможешь объяснить нахуя тебе нужно обязательно вставить конструкторы. ПАТАМУЧТА В УЧЕБНЕКЕ НАПИСАНА НАДА
Аноним 08/11/17 Срд 17:50:50  164582240
>>164581851
Тебе тут 10 раз показали как из использовать. Вместо конкретных данных вставляет в конструктор просто строки на каждое поле. Инициализируешь их своими сраными текстбоксами. Все, конструктор перегружен и объект создан. Потом берешь обычный конструктор, создает пустой объект и присваиваешь его полям значение все тех же текстбоксов. Все, второй объект создан. Оба конструктора используются и делают то же самое, каждый для своего объекта. Условие задачи выполнено.
Аноним 08/11/17 Срд 17:51:00  164582249
>>164581999
Я вижу поля и класс. Три "тонеля" это наверное конструкторы, но хз
Аноним 08/11/17 Срд 17:52:42  164582355
>>164582141
Там несовсем верно написано.
Есть 3 текстбокса.
В классе создаешь 4 конструктора.
В 1 конструкторе не пишешь аргументов (это дефолтный конструктор).
Во 2 в аргументах пишешь только имя
В 3 пишешь имя и фамилию
В 4 пишешь имя, фамилию и класс.

Потом просто заполняешь поля нажимаешь в гридвью кнопочку отправить, и объект сам создается, тебе не нужно его создавать ручками.

Так понятно? А вообще, тебе нужно в гриде написать функцию, которая проверяет, заполнены ли поля, и выдает ошибку, если какое-либо поле не заполнено.
Аноним 08/11/17 Срд 17:53:05  164582380
>>164582204
>ПАТАМУЧТА В УЧЕБНЕКЕ НАПИСАНА НАДА
Да.
Аноним 08/11/17 Срд 17:53:47  164582425
>>164582141
Потому что ты объясняешься как мудак. В описании класса ты нихуя объектов не создаёшь. Ты просто описываешь в классе конструкторы. А создаешь объекты вызовом конструкторов.
Аноним 08/11/17 Срд 17:56:21  164582582
>>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); - а это типа пользовательский конструктор.


Т.е. вопрос. Как сделать так чтобы не работали сразу оба конструктора и не записывали одно и то же в датагридвью.
Аноним 08/11/17 Срд 17:59:43  164582821
>>164582355
> А вообще, тебе нужно в гриде написать функцию, которая проверяет, заполнены ли поля, и выдает ошибку, если какое-либо поле не заполнено.
У меня есть такая функция, но придется ее убрать видимо, чтобы по заданию использовать несколько конструкторов.
Аноним 08/11/17 Срд 18:00:44  164582885
>>164582425
>В описании класса ты нихуя объектов не создаёшь
а где там написано что в классе создаются объекты? Это вообще бредятина полная
Аноним 08/11/17 Срд 18:00:54  164582896
>>164582582
Ты даже не пытаешься. Ты просто повторяешь одно и тоже по кругу. Тебе тут 5 разных решений предложили. Чуть ли не каждую строчку обсосали, но нет, ты продолжаешь задавать вопросы "Какой участок кода будет работать?" в 15 строчках.
Аноним 08/11/17 Срд 18:01:45  164582948
>>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;
Аноним 08/11/17 Срд 18:02:46  164583010
>>164582582
> не записывали одно и то же в датагридвью.
Так у тебя и там и там

Student1.Name = textBox1.Text; - в поля записываются данные из текстбокса
Student1.Surname = textBox2.Text;
student1.NumClass = textBox3.Text;

new Student(textBox1.Text, textBox2.Text, textBox3.Text);

одни и те же текстбоксы
Ты наркоман?
Аноним 08/11/17 Срд 18:03:33  164583053
>>164582582
Ебать тебя рельсой. Серьёзно.
Ты постишь куски кода и спрашиваешь "А чо буит работать?". Да хуй тебя, оленя, знает,чо работать будет. Кидай полный код (это и описание класса и основной блок,где кнопка твоя описана).
Аноним 08/11/17 Срд 18:03:45  164583072
>>164582948
>\tpublic void Student(){
конструкторы так-то ничего не возвращают, даже void
Аноним 08/11/17 Срд 18:04:49  164583139
>>164583010
>Ты наркоман?
Ну типа Student1.Name = 2, new Student(2) рибят почему у меня и там и там 2????777 Как сделать чтобы там 2 а там 3 7?7777777?7?7
Аноним 08/11/17 Срд 18:06:00  164583219
>>164583072
Да, меня уже просто от тупости опа подбамбливает, просто копировал-вставлял
Аноним 08/11/17 Срд 18:06:28  164583240
>>164582948
>В зависимости от количества переданных в конструктор аргументов программа сама выберет нужный конструктор.
А если текстбокс пустой, там же все-равно 0 или "" передается и это будет считаться за аргумент и всегда будет работать 4 конструктор. И как быть?
Аноним 08/11/17 Срд 18:06:53  164583266
>>164582582
Оператор if, не?
Аноним 08/11/17 Срд 18:07:29  164583311
>>164583240
Проверка на клиенте.
Аноним 08/11/17 Срд 18:07:47  164583333
>>164583240
Ты вообще пиздец. Вот тут, еще раз >>164582355
>А вообще, тебе нужно в гриде написать функцию, которая проверяет, заполнены ли поля, и выдает ошибку, если какое-либо поле не за
Аноним 08/11/17 Срд 18:08:26  164583380
>>164583010
блять, в датагридвью создаются две одинаковых строчки. хуле ты сам тупишь?
Аноним 08/11/17 Срд 18:09:42  164583463
>>164583053
вот же>>164569109
Аноним 08/11/17 Срд 18:11:49  164583603
>>164582948
Разве выберет? Пустая строка же тоже аргумент.
Аноним 08/11/17 Срд 18:12:02  164583614
>>164583333
объект создается до записи в датагридвью. Так что причем тут проверка в датагридвью? Я тебюе про то, что всегда будет работать тот конструктор, где якобы все текстбоксы заполнены, потому что пустой текстбокс - это 0 или "".
Аноним 08/11/17 Срд 18:12:13  164583630
>>164583463
Вот же ответы:
>>164583380
>>164583010
Аноним 08/11/17 Срд 18:13:14  164583693
>>164583614
Ну так сделай проверку пустых строк.
Аноним 08/11/17 Срд 18:13:32  164583716
>>164583614
А может сначала мы проверим на пустые поля,а потом уже будем создавать блять объекты,не?
Аноним 08/11/17 Срд 18:13:46  164583728
>>164583630
где ответы? ты видать посты перепутал.
Аноним 08/11/17 Срд 18:15:09  164583819
>>164583463
Во второй конструктор запишется, ведь у тебя в конструкторе 3 аргумента. Если бы конструктор вызывался без аргументов - писалось бы в первый конструктор, который дефолтный.

>>164583614
>объект создается до записи в датагридвью.
НИ-ХУ-Я. Объект создается после того, как ты отошлешь данные из строк в конструктор.

>Так что причем тут проверка в датагридвью?
При том, что если тебе не нужно, чтобы ты пустые строки отправлял в конструктор, проверяй, чтобы поля были не пустые.
Аноним 08/11/17 Срд 18:15:55  164583882
>>164583728
Нет,я тебе процитировал два поста,которые прямо тебе говорят,что ты блять делаешь одно и тоже. А ты в глаза ебешься.
Аноним 08/11/17 Срд 18:16:08  164583890
1462453744t3wjn[...].jpg (25Кб, 550x297)
>>164583819
Аноним 08/11/17 Срд 18:17:11  164583964
>>164583716
И как проверим?
типа вот атк что ли
if (textBox1.Text != "") ;
Student Stud1 = Student(Stud1.surname, Stud1.numClass);
Аноним 08/11/17 Срд 18:18:23  164584057
>>164583819
>НИ-ХУ-Я. Объект создается после того, как ты отошлешь данные из строк в конструктор.
И хуле? Это все-равно до записи в датагридвью.
Аноним 08/11/17 Срд 18:19:28  164584122
>>164583964
Если имя НЕРАВНО нулю,вызвать конструктор без имени? Ты наркоман?
Аноним 08/11/17 Срд 18:20:33  164584190
>>164583964
Нет, если строка пуста, под текстовым полем должна появиться надпись, что строка пуста. И ничего не должно создаваться. И вот тут мы плавно подступаем к тестированию кода, выбрасывании ошибок и прочему говно.

>>164584057
И хули? Проверяй свои текстовые поля, если строка пуста, выбрасывай ошибку. Если не пуста, создавай объект. Потом пиши куда тебе это там надо, яебал твои датагридвью, не ебу, что это такое.
Аноним 08/11/17 Срд 18:21:23  164584249
>>164584190
Забыл
Аноним 08/11/17 Срд 18:23:13  164584372
>>164584122
А то, что он использует пустой иф, ставит точку с запятой, после чего запускает конструктор объекта, тебя не смутило?
Аноним 08/11/17 Срд 18:25:47  164584501
>>164584372
Пустой иф выглядит как ошибочная лишняя ;
Аноним 08/11/17 Срд 18:26:49  164584565
>>164584501
Ну и я про это. Иф есть, но нахуй, если нет строки кода, которая выполняется, если условие верно?
Аноним 08/11/17 Срд 18:29:45  164584749
>>164584565
Ну так поэтому я посчитал ; на ифе за очепятку,а конструктор - за выполнение при истине. И бомбанул.
В общем, я убёг,удачи тебе с необучаемым =)
Аноним 08/11/17 Срд 18:30:39  164584802
>>164584190
Блять. Если мы всегда будем заполнять все поля обязательно, то и будет работь один конструктор. А надо два и более.
Аноним 08/11/17 Срд 18:34:25  164585044
>>164584802
1)сделай проверку на пустые поля
2)вызывай разные конструкторы по итогам проверок
3)???
4)профит!!
Аноним 08/11/17 Срд 18:34:42  164585060
>>164584802
Твои проблемы. Проверяй, если значение поля не равно false, то передавай его в конструктор. Если равно false, то не передавай его и все последующие. Потому что пустая строка и 0 == false

if (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);
Ты создаешь объект и пытаешься сослаться на его же методы. У тебя компилятор ошибку выкинет.
Аноним 08/11/17 Срд 18:42:17  164585535
>>164585044
Как я разные буду вызывать, эсли мне предлагают принудительно требовать заполнить все поля.
Аноним 08/11/17 Срд 18:43:27  164585609
>>164585060
Там не ошибка, а опечатка.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 213 | 10 | 31
Назад Вверх Каталог Обновить

Топ тредов
Избранное