И снова предлагаю вам небольшой урок по Java. На этот раз он связан (и строится) на использовании методов (ООП). Метод можно сравнить с функцией или процедурой, которая работает с элементами объекта класса и реализует его возможности. В отличие от функции, метод — гораздо более универсальная вещь. С его помощью можно вызвать необходимый блок кода в любой части программы, не переписывая его заново. Учитывая объёмы современных программ, это весьма и весьма актуально. Впрочем, не будем углубляться в ООП. Я предлагаю вам небольшую учебную программку, полезную для понимания методов.
Нам понадобится статический метод из библиотечки для печати результата и всего один класс – Car. А работать мы будем с тремя объектами одного и того же класса – автомобилями разных марок — BMW, Lada, Honda. Благодаря ООП, они будут обладать разными свойствами. Здесь будет название брэнда, количество топлива в баке, расход топлива на один километр и максимальная скорость.
В программе четыре метода. Один возвращает название машины, а другой рассчитывает пробег на полном баке. Третий метод представляет собой нечто вроде упрощенного компьютера авто. Если бак полон – он разрешает машине максимальную скорость, если в баке менее 10 литров топлива — авто снижает скорость наполовину, а на приборной панели загорается красный предупреждающий сигнал. И, наконец, если топлива нет – двигаться машинка не будет.
Ещё один метод показывает динамику набора скорости при однократном нажатии педали газа. Т. е — в данном примере программа сама нажимает на педаль и показывает скорость. Это делается с помощью стандартного цикла for, причем с замедлением в 1 тыс. миллисекунд, так что мы видим, что происходит.
import static java.lang.System.out;
public class Car {
String name; //модель авто
int gasoline; // количество топлива
int consumption; // расход горючего на 1 км
int MaxSpeed; // максимальная скорость
int i;
//Метод ускорения
void acceleration() throws InterruptedException{
if(gasoline > 30){
for(i = 1; i < MaxSpeed; i=(i++)+50-1, Thread.sleep(1000)){
int z = i;
System.out.print(" жмём на газ - скорость: "+z+"\n");
}
}
}
//Метод показывает название машины
String Name(){
return name;
}
//Метод расчета пробега на полном баке
Integer mileage() {
return (gasoline/consumption);
}
//Метод показывает движение
String drive() {
if(gasoline > 10){
out.print("\n бак полный - машина едет, скорость - максимальная "+MaxSpeed+" км/ч\n");
}
if(gasoline < 10&&gasoline > 0 ){
out.print("\n красный сигнал - мало топлива, скорость "+(MaxSpeed-120)+" км/ч\n");
}
if(gasoline <= 0){
out.print("\n машина не движется - нет топлива скорость "+(MaxSpeed-MaxSpeed)+"\n");
}
return null;
}
public static void main (String [] args) throws InterruptedException{
Car BMW = new Car();
Car LADA = new Car();
Car Honda = new Car();
BMW.name = "BMW";
BMW.gasoline = 520;
BMW.consumption = 1;
BMW.MaxSpeed = 250;
LADA.name = "LADA";
LADA.gasoline = 9;
LADA.consumption = 2;
LADA.MaxSpeed = 180;
Honda.name = "Honda";
Honda.gasoline = 0;
Honda.consumption = 3;
Honda.MaxSpeed = 220;
out.print(BMW.Name()+" может проехать ещё "+BMW.mileage()+" км");
BMW.drive();
BMW.acceleration();
out.println();
out.print(LADA.Name()+" может проехать ещё "+LADA.mileage()+" км");
LADA.drive();
LADA.acceleration();
out.println();
out.print(Honda.Name()+" может проехать ещё "+Honda.mileage()+" км");
Honda.drive();
LADA.acceleration();
}
}
Почему я выбрал такой пример?
Во-первых, я сам его сделал из маленькой и очень скучной учебной задачки.
Во-вторых, он демонстрирует то, как работают методы. Всё, что нам нужно сделать — это вызвать три объекта класса Car, передать каждой модели её параметры — название, количество топлива, максимальную скорость и расход. Методы во всех трёх случаях для каждой модели одинаковы. Переписывать их не надо — только вызвать, например: Honda.drive();. Дальше они работают сами.
В-третьих, хоть программа работает в текстовом варианте, даже из этого маленького примера можно сделать небольшую (а может и большую), вполне рабочую программу, добавив нужные методы, визуальный интерфейс, окошки ввода параметров, а также программный интерфейс, который будет эти параметры откуда-то запрашивать и передавать в наш код.
С предыдущий уроком автора вы можете ознакомиться здесь.
Эдуард Трошин
Комментарии
petro42, куда вы пропали? Киньте в личку ответ на интересуюший меня вопрос, ну вы знаете какой. А то мне нечего сказать молодому. :)
И да, урок чересчур примитивен, поэтому не удивляет, что "Вести" его чуть было не зачморили. Хотя полезен, кому Java вновинку.