public class Truck {
int weight;
public static class Officer{
int maxweight;
public Officer (int maxweight){
this.maxweight = maxweight;
}
public boolean checkTruck(Truck truck){
if (truck.weight < maxweight){
return true;
} else {
return false;
}
}
}
public static void main (String [] args){
Truck first = new Truck ();
first.weight = 1000;
Truck second = new Truck();
second.weight = 2000;
Officer officer = new Officer(1500);
System.out.println("Грузовик 1");
boolean canFirstTruckGo = officer.checkTruck(first);
System.out.println(canFirstTruckGo);
System.out.println("Грузовик");
boolean canSecondTruckGo = officer.checkTruck (second);
System.out.println(canSecondTruckGo);
}
}
Николай Климов
4 уровень
помогите разобраться как сработала конструкция boolean canFirstTruckGo = officer.checkTruck(first)
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Andrew
12 февраля 2020, 01:26
Cоздаётся переменная типа boolean, называем её canFirstTruckGo и присваиваем ей значение (true or false) которое получим из метода checkTruck (это метод класса public static class Officer) поэтому вызываем так officer.checkTruck. Этот метод принимает переменную типа Truck, которую у себя в методе будет называть truck. В него мы передаём экземпляр класса Truck с именем first.
Officer officer = new Officer(1500); //мы задали значение maxweight = 1500;
Truck first = new Truck();
first.weight = 1000; // weight = 1000;
эти две величины сравниваются в методе
public boolean checkTruck(Truck truck) {
if (truck.weight < maxweight) { // (1000 < 1500) условие выполняется и в переменную
//canFirstTruckGo передаётся true
return true;
} else {
return false;
}
}
+1
Николай Климов
12 февраля 2020, 05:30
Большое человеческое спасибо)
0
ГоффMaster
12 февраля 2020, 01:09
0
ГоффMaster
11 февраля 2020, 23:21
Будет лучше если ты задачу приложишь, а не будешь копипастировать код
0
Николай Климов
11 февраля 2020, 23:30
это не задача. код из лекции.
0
ГоффMaster
12 февраля 2020, 01:26
Ага, попробую.
У нас есть класс Truck, и у каждого объекта этого класса есть поле (переменная) int weight.
Ещё есть класс Officer и у каждого объекта этого класса есть поле int maxweight.
У класса Officer есть конструктор, который принимает целое значение в качестве параметра и присваивает полю maxweight создаваемого объекта.
Ещё у класса Officer расписан метод public boolean checkTruck, который в качестве параметра принимает какой-то объект класса Truck. Этот метод сравнивает значения полей maxweight конкретного офицера, применительно к которому вызвали этот метод (который перед точкой при вызове указан) и поля weight того объекта класса Truck, который передали методу в качестве параметра. Ну и возвращает соответсвенно либо false либо true, в зависимости от того, что из сравниваемых больше/меньше. Попутно замечу, что строки 12 - 16 заменяются единственной строкой return truck.weight < maxweight;
Далее, по мейну.
Строка 21 - создаём новый объект класса new Truck и ссылку на него закидываем в переменную first.
22: Закидываем в поле weight объекта first тысячу.
23: Создаём ещё один объект Truck и заносим в переменную second
24: Заполняем поле weigh объекта second
25: создаём объект класса Officer и сразу же передаём в конструктор параметр 1500, которое тот закинет в поле maxweight нашего объекта по имени officer
27: применительно к созданному объекту officer вызываем метод checkTruck и передаём этому методу в качестве аргумента объект first. Получаем в ответ true потому что вес грузовика меньше, чем максимальный разрешённый у этого офицера.
Ну вот примерно так
+2
Николай Климов
12 февраля 2020, 05:30
Большое человеческое спасибо)
0