Как вызвать класс в java
Для того, чтобы использовать методы или объекты другого класса, его необходимо импортировать при помощи ключевого слова import. Например, вы работаете в классе Main и вам необходимо импортировать класс ArrayList, выглядеть это будет следующим образом:
import java.util.ArrayList; public class Main public void main() // пример создания объекта класса ArrayList ArrayListstString> list = new ArrayList<>(); // на этом объекте мы уже можем вызывать методы класса ArrayList list.add("Hello!"); System.out.println(list); // => Hello! > >
Как вызвать метод класса java
Задачи получилось решить интуитивно + ide дает подсказки. После этого урока рекомендую прочитать https://javarush.com/groups/posts/modifikator-static-java — здесь не все понимаешь с первого раза (особенно концовку), но текст легче воспринимается
Elizaveta Trokhina Уровень 13 Expert
11 ноября 2023
лекция просто капец, ничего не понятно. что-то говорится, примеры явно не в тему. задачи тоже как бы не особо раскрывают тему( пойду посмотрю допматериалы
Novikova Natalia Уровень 16
7 ноября 2023
«Статические методы можно вызывать откуда угодно — из любого места программы. А значит, их можно вызывать и из статических методов, и из обычных. Никаких ограничений тут нет.» — а по модификатору доступа к статическому методу?
Irina Michurina Уровень 16
29 октября 2023
Здесь крайне непонятно объясняется про статические и обычные переменные и методы — слишком много ненужных слов и непонятных картинок без конкретных примеров. Лучше почитать в других источниках (в тех же статьях на этом сайте более понятно объясняется).
Defer Уровень 15
19 октября 2023
Optimus Уровень 17
17 октября 2023
Не работает кнопка «button_unlock_java_syntax_pro_lesson_4_12» Для перехода на следующую лекцию, нет ссылки у нее Удалось зайти в лекцию 4, через задачи, вызвав недоступную задачу из этой лекции. Там кнопка работает.
kivkaOne Уровень 12
8 октября 2023
если кто-то хочет пройти этот путь вместе — пишите.. тг: @kivkaOne
Владимир Уровень 15
27 сентября 2023
/* Комментарий удален */
Dmitry Shaburov Уровень 32
15 сентября 2023
Navotno Уровень 15
12 сентября 2023
Я сначала посмотрел лекцию Наиля Алишева, всё понял, потом прочитал тут и опять запутался.
Сообщество
JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
«Программистами не рождаются» © 2023 JavaRush
Скачивайте наши приложения
«Программистами не рождаются» © 2023 JavaRush
Этот веб-сайт использует данные cookie, чтобы настроить персонально под вас работу сервиса. Используя веб-сайт, вы даете согласие на применение данных cookie. Больше подробностей — в нашем Пользовательском соглашении.
Как вызвать метод другого класа в метод мейн?
Как можно вызвать метод AddPupil чтобы добавить ученика в класс? Не вижу метод другого класса если он не статик.
Что можно сделать? Как изменить когда чтобы добавить ученика в список. Еще нужно ли поле List в классе Class, или лист нужно будет создавать в Main , (при вызове метода AddPupil параметром нужно указать лист, в который хочу добавить)
Отслеживать
73.1k 107 107 золотых знаков 38 38 серебряных знаков 55 55 бронзовых знаков
задан 30 окт 2022 в 23:59
19 6 6 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Это че с#? Почему тег не указали? Ну если в двух словах, то нужно создать экземпляр вашего Class, вызвать на нем метод AddPupil и передать в него учеников.
Коллекция конечно же должна быть внутри объекта класс, это же логично, чтоб хранить учеников внутри. Поэтому логика метода AddPupil не правильная у вас. Смысл передавать в метод объекта коллекцию класса и ученика,чтоб просто внутри добавить ученика в эту коллекцию, а потом её сохранить, нету. Это очень спецефичный случай. Зачастую вы хотите добавить в класс либо одного ученика, либо нескольких. Поэтому в main создаёте коллекцию, если вам надо, добавляете туда учеников и потом передаёт её в экземпляр класса, то есть сохраняете её в классе. И последние ваше предложение: указать параметр лист в который я хочу добавить, не совсем понятно. У вас всего один лист в классе
Покажу на примере Java может поможет , у меня там два метода с одинаковым названием AddPupil, они перегружены и срабатывают в зависимости от того какой аргумент в вызове метода, если в с# такого нет, то можно использовать разные названия методов.
class MyClass // в java не используйте слово Class в названии < private ListPupilsList = new ArrayList<>(); public void AddPupil(Pupils pupil) < PupilsList.add(pupil); >//перегруженная версия метода для добавления колекции public void AddPupil(List pupil) < PupilsList = pupil; /* // Либо соединить две коллекции . Тогда нужно будет //импорт сделать библеотеки Stream //и удалить строку PupilsList = pupil PupilsList = Stream.concat( PupilsList.stream(), pupil.stream()).collect(Collectors.toList()); */ >public void showClass() < System.out.println(PupilsList); >>
В методе main создаю экземпляр ученика и класса, чтоб добавить ученика в через вызов метода AddPupil экземпляра класса MyClass
Pupils pupil = new Pupils("Vlad", 24); MyClass MyClass1 = new MyClass(); MyClass1.AddPupil(pupil); MyClass1.showClass(); // JAVA функция для создания листа на лету MyClass1.AddPupil(Arrays.asList( new Pupils("Vlad", 24),new Pupils("Dima", 27),new Pupils("Semen", 26))); //либо для с# //MyClass1.AddPupil(/* ВАШ ЛИСТ УЧЕНИКОВ КОТОРЫЙ ВЫ СОЗДАДИТЕ В MAIN*/) ; MyClass1.showClass();
Могут быть мелкие синтаксические ошибки так как набирал на телефоне, нет возможности запустить проверить
Arrays.asList — это для удобства, это функция создаёт лист из перечисленных объектов , а так вы должны передать List который в main создадите. В java если после добавления коллекции будете использовать добавление по одному, лучше так не делать. Насколько я помню он создаёт фиксированный лист, и вы не сможете добавить к этому списку ученика . Так что если столкнетесь с такой проблемой используйте в качестве аргумента метода AddPupil(List pupil) — ArrayList, а не Arrays.asList. Ну то есть в main создаёте полноценную коллекцию и её передаёте. Если использовать будете версию где соединение через stream идёт, то там все равно, кст можно через метод addAll, который есть у листов, соединять, но stream лучше.
Java: Создание (определение) метода
Определение собственных методов значительно упрощает написание и поддержку программ. Например, методы позволяют объединять составные операции в одну.
К примеру, отправка письма на сайте — это достаточно сложный процесс, включающий в себя взаимодействие с интернетом. Можно определить метод и скрыть всю сложность за одной простой конструкцией:
// Место откуда берется метод import com.example.Mailer; var email = "support@hexlet.io"; var title = "Помогите"; var body = "Я написал историю успеха, как я могу получить скидку?"; // Mailer – имя класса, в котором определен метод send() // Один маленький вызов — и много логики внутри Mailer.send(email, title, body);
Внутри себя подобный вызов выполняет довольно много логики. Он соединяется с почтовым сервером, формирует правильный запрос на основе заголовка и тела сообщения, а затем все это отправляет, не забыв закрыть соединение.
Как создавать методы
Создадим наш первый метод. Его задача — вывести на экран текущую дату:
Today is: 2021-10-25
import java.time.LocalDate; // Определение метода // Определение не вызывает и не выполняет метод // Мы лишь говорим, что теперь такой метод существует public class App < public static void showCurrentDate() < // Встроенный метод в Java для получения текущего времени и даты var currentDate = LocalDate.now(); var text = "Today is: " + currentDate; System.out.println(text); >> // Вызов метода // Обязательно указывать имя класса App.showCurrentDate(); // => Today is: 2021-10-25
Определение метода в Java включает в себя много действий, которые мы постепенно разберем.
Их можно разделить на две группы:
- То, что влияет на работу самого метода
- То, как этот метод видим за пределами класса
За видимость отвечает слово public. Оно дает возможность вызывать методы снаружи класса, как в примере выше. Кроме него существует private, который разбирается на Хекслете в курсе по ООП в Java.
За работу метода отвечают:
- static — отвязывает метод от объекта и делает возможным его вызов напрямую из класса
- void используется, если метод ничего не возвращает. Например, такое определение у метода System.out.println() . Если метод возвращает какие-то данные, то вместо void указывается тип возвращаемых данных
В отличие от обычных данных, методы выполняют действия, поэтому их имена практически всегда должны быть глаголами: «построить что-то», «нарисовать что-то», «открыть что-то».
Все, что описывается внутри фигурных скобок <> , называется телом метода. Внутри тела можно описывать любой код. Считайте, что это маленькая самостоятельная программа, набор произвольных инструкций.
Тело выполняется ровно в тот момент, когда запускается метод. Причем каждый вызов метода запускает тело независимо от других вызовов. Кстати, тело может быть пустым:
// Минимальное определение метода public class App < public static void noop() < // Тут мог бы быть код, но его нет // Обратите внимание на отступы // Для читаемости, любой код внутри тела сдвигается вправо на 4 пробела >> App.noop();
Понятие «создать метод» имеет много синонимов: «реализовать», «определить» и даже «заимплементить». Все эти термины встречаются в повседневной практике на работе.
Задание
Реализуйте статический метод с именем printMotto() , который выведет на экран фразу Winter is coming.
// Класс App уже определен App.printMotto(); // => Winter is coming
Чтобы мы могли вызвать этот метод снаружи, нужно его пометить не только ключевым словом static , но еще и public .
В задачах, в которых нужно реализовать метод, этот метод вызывать не нужно. Вызывать метод будут автоматизированные тесты, которые проверяют его работоспособность. Пример с вызовом выше показан только для того, чтобы вы понимали, как ваш метод будет использоваться.
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
