|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.01.2016, 02:21 | #1 |
Пользователь
Регистрация: 03.01.2016
Сообщений: 59
|
set-еры, get-еры. Простая задача, а сломал мозг.
Работаю в Android Studio, ЯП - Java
По обучающей видяхе создал два класса 1. Main.java 2. Student.java В комментариях мои предполагаемые действия программы, причем я запутался в работе класса Student, в set-ерах и get-ерах. PHP код:
PHP код:
PHP код:
Как я понимаю, поля - это свойства у классов, но когда мы говорим о экземплярах класса, т.е. об конкретных объектах, то вместо полей уже переменные, а вместо классов - объекты. Правильно понимаю? На этом строятся мои рассуждения. |
10.01.2016, 10:49 | #2 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
Сеттер - свойству Name присваивает значение "Danielle", т.е. у нас есть объект типа Student с именем Danielle. Поскольку, у этого поля стоит видимость private, то мы не можем к нему напрямую обратиться, чтобы, например, вывести на экран. В таком случае для доступа используется Геттер - метод, который возвращает значение этого name для конкретного объекта Strudent/
String name = s.getName(); - вот тут Вы вызываете этот метод и он возвращает имя, которое записывается в переменную name. Если надо более подробно какие-то моменты - спрашивайте )) |
10.01.2016, 14:29 | #3 |
Пользователь
Регистрация: 03.01.2016
Сообщений: 59
|
set-еры, get-еры. Простая задача, а сломал мозг.
http://www.programmersforum.ru/showthread.php?t=288069
Объясните, пожалуйста, построчно(всего лишь 7 строк) как работает класс Student. Откуда он начинается? С первой строчки, или с PHP код:
Объясните, пожалуйста, как работает этот класс построчно. И скажите, пожалуйста, я правильно понимаю смысл работы нижеприведенных 4 строк в классе Main? В комментариях как я понимаю работу. PHP код:
Последний раз редактировалось nevender; 10.01.2016 в 15:19. |
10.01.2016, 15:36 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Непонятный вопрос какой-то. getName это просто функция (или метод, так обычно называют функции в классе) возвращающая значение поля/переменной/как_угодно_называйте, а setName — функция устанавливающая это значение.
Это ж не вызывает вопросов? Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 10.01.2016 в 15:39. |
10.01.2016, 16:47 | #5 |
Пользователь
Регистрация: 03.01.2016
Сообщений: 59
|
Вопрос по пониманию класс-экземпляр класса, поле-переменная, название класса-название экземпляра класса
1. setName и getname - это методы. методы = функции = процедуры.
2. setName - мы запоминаем значение и отправляем на обработку в класс Student, в его метод setName, где для экземпляра класса(объекта) Student с названием "s". Это наименование класса s? Я не знаю, есть ли у экземпляров класса наименования, причем я имею в виду не поля, и не переменные(это ведь свойства). А именно названия = наименования экземпляров класса. Я пытаюсь ПОНЯТЬ взаимосвязь между этими параметрами, поэтому все расписываю с большОй точностью определений. Я правильно понимаю эти понятия? ВОПРОС: получается, что у нас есть класс Student, очевидно что экземпляров класса может быть много. Эти экземпляры имеют своё НАИМЕНОВАНИЕ кроме поля name(в данном случае)? Конкретно: допустим есть экземпляры класса с НАИМЕНОВАНИЕМ a, b, c, s. У класса Student есть только 1 ПОЛЕ --> name. Соответственно у экземпляров a,b,c,s есть только 1 ПЕРЕМЕННАЯ, и у s она равна "Danielle" Всё вышеописанное верно? Alex11223, я новичок в программировании, могу ошибаться, но по-моему нижеописанный код написан с ошибками, если это java. В комментариях почему я так считаю. Код:
Последний раз редактировалось Stilet; 11.01.2016 в 08:46. |
10.01.2016, 17:05 | #6 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну предполагалось, что это надо засунуть в любой класс, ибо в Java не бывает ничего без классов.
Код:
Цитата:
Можно никуда не сохранять ссылку, а просто сразу выкинуть но смысла в этом обычно мало. Код:
Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
10.01.2016, 17:05 | #7 |
Пользователь
Регистрация: 03.01.2016
Сообщений: 59
|
Синтаксис ЯП java для простых программ, как я понимаю. Прокомментируйте, пожалуйста. Но вначале с самого начала.
Вначале мы создаем проект, называем, пишем название для пакета, допустим com.company. Получаем класс файл Main.java = класс. Код: package com.company // пакет com.company. это на ступень выше в иерархии чем классы. правильно понимаю? PHP код:
Где ошибка в моих рассуждениях? Где ошибка в моих комментариях к Вашему коду? Код:
Последний раз редактировалось Stilet; 11.01.2016 в 08:47. |
10.01.2016, 17:23 | #8 | |||
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Без этого пришлось бы называть их например MyButton, AwtButton, SwingButton, JavaFxButton и т.п. Ну и чтоб было понятнее что к чему относится, для группировки. Цитата:
Цитата:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 10.01.2016 в 17:28. |
|||
10.01.2016, 17:24 | #9 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Переменные одного и того же класса не равны между собой, каждый экземпляр класса изолирован от другого, т.е. A не равно B даже если у них типы данных одинаковые, банально потому что расположены в разных областях памяти. То что вы описали, называется присвоением. Создали класс в переменной A, присвоили эту переменную A, переменной B, теперь через A и B вы ссылаетесь на один и тот же экземпляр класса и изменив свойство класса через B, изменение получите и в A. Потому что работа идет с один и тем же экземпляром. Повторюсь, сначала основы ООП почитайте, потом уже классы пишите. Последний раз редактировалось Человек_Борща; 10.01.2016 в 17:27. |
|
11.01.2016, 05:50 | #10 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,679
|
nevender, ООП максимально приближено к реальному миру.
Вот например в университете учится 2-а студента. Михаил и Александр... У них 2-а разных имени (name), так, но они оба студенты. Мы общаемся с одним из студентов. Спрашиваем его имя.. И он нам его говорит (get- метод). При рождении этого студента (создании объекта), родители дали ему имя (инициализация имени в конструкторе). Но например ему захотелось изменить свое имя. (set - метод). Подводя итог: методы - это какие либо действия производимые с объектом или внутри объекта, а поля - свойства (имя, рост, вес в данном примере). Но это написано в каждом учебнике, как вы этого не нашли
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! Последний раз редактировалось Bugrimov; 11.01.2016 в 05:55. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вроде бы простая задачка, однако я башку сломал | Scorch92 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 19.11.2014 21:49 |
Простая задача | Arsenx777 | Помощь студентам | 1 | 04.03.2012 11:18 |
Простая задача!? | koralnik | Microsoft Office Access | 1 | 17.10.2010 11:02 |
Сломал мозг, скрытие метки деления оси. | O_H | Microsoft Office Excel | 2 | 06.08.2010 19:57 |
Посмотрите что не так, я весь мозг сломал... | Devil55 | Помощь студентам | 3 | 18.02.2009 18:31 |