Практикум Java — методы

И снова предлагаю вам небольшой урок по 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();. Дальше они работают сами.

В-третьих, хоть программа работает в текстовом варианте, даже из этого маленького примера можно сделать небольшую (а может и большую), вполне рабочую программу, добавив нужные методы, визуальный интерфейс, окошки ввода параметров, а также программный интерфейс, который будет эти параметры откуда-то запрашивать и передавать в наш код.

С предыдущий уроком автора вы можете ознакомиться здесь.

Эдуард Трошин

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Читайте также

 

Комментарии

Аватар пользователя mike

petro42, куда вы пропали? Киньте в личку ответ на интересуюший меня вопрос, ну вы знаете какой. А то мне нечего сказать молодому. :)

И да, урок чересчур примитивен, поэтому не удивляет, что "Вести" его чуть было не зачморили. Хотя полезен, кому Java вновинку.