Главная » Java » Создаём Домашнее Животное

0

Давайте придумаем и создадим класс Домашнее Животное (по- английски  просто Pet).  Сначала нужно решить, какие действия  наш Pet сможет  выполнять. Как  насчет есть, спать и говорить (eat,  sleep,  say)  ?

Мы  запрограммируем эти действия в методах класса Pet. А ещё мы дадим  нашему домашнему животному такие аттрибуты: возраст (age), рост (height), вес (weight) и цвет (color).

Начнем  с создания нового класса по имени Pet в проекте My First Project из  второй главы, но при этом не ставьте птичку, требующую создания метода main(). Ваш  экран будет выглядеть примерно так:

Теперь мы  готовы  объявить аттрибуты и методы  в классе Pet.  Код  в классах и методах должен быть окружен фигурными скобками. Каждая отрывающая скобка должна иметь свою закрывающую:

class Pet{

}

Давайте  выберем типы данных для аттрибутов нашего класса. Япредлагаю int  для возраста, float для веса и роста, String для цвета.  class Pet{

}

int age;

float weight; float height; String color;

Добавим  несколько методов в наш класс. Здесь нужно решить будут лиэти  методы иметь параметры и возвращать какие-­?нибудь данные:  ?? Метод  sleep() будет просто печатать фразу Спокойной ночи, до завтра –  ему не нужны никакие параметры и он не будет возвращать никаких значений.

?? То  же самое относится и к методу eat() – он будет печататьсообщение  Я очень голоден…давайте перекусим чипсами!

?? Хотя  метод say() тоже будет печатать сообщение, но наше домашнее животное будет ещё и “произносить” слово или фразу, которую мы ему дадим, как параметр. Этот метод будет строить фразу, включающую значение этого параметра, после чего этого фраза будет возвращаться вызывающей программе.

Новая  версия класса Pet будет выглядет так:

public class Pet {

int age;

float weight; float height; String color;

public void sleep(){

System.out.println("Спокойной ночи! До завтра");

}

public void eat(){ System.out.println(

"Я очень голоден, давайте перекусим чипсами!");

}

public String say(String aWord){

String petResponse = "Ну ладно!! " +aWord;

return petResponse;

}

}

Этот  класс представляет вот такое симпатичное существо из реальногомира:

Давайте  поговорим о заголовке (сигнатуре) метода sleep():

public void sleep()

Этот  заголовок говорит  нам,  что  метод  sleep()  можно  вызывать  из любого  другого  класса  (public)  и  что  метод  не  возвращает  никаких данных (void).  Пустые  скобочки  значат,  что этот  метод  не имеет параметров  –  ему  ведь  не  нужны никакие  данные  из окружающей среды, потому что он всегда печатает один и тот же текст. Заголовок метода say() выглядит так:

public String say(String aWord)

Этот метод тоже можно вызывать из  любого другого класса, но он ещё и   возвращает какой-­?то   текст – это и есть роль ключевого слова String, стоящего  перед  именем  метода.  А  кроме  того,  этот  метод ожидает  какие-­?то  текстовые данные извне и для этого в заголовок метода включен параметр String aWord.

А как же определить – должен  ли  метод возращать данные? Если метод выполняет   какие-­?то   действия над данными и должен передать результат   этих  действий  вызывающему  классу,  то  он  должен возвращать данные.  Вы  можете  возразить,  что  у  класса  Pet  нет никакого вызывающего класса! Верно, поэтому мы  сейчас и создадим класс   PetMaster (Хозяин). У этого класса будет метод main(), содержащий код для работы с классом Pet.Создайте  новый  класс  PetMaster,  но  на  этот  раз  поставьте  птичку в Eclipse возле вопроса создавать-­?ли метод main(). Не забывайте, что без этого метода вы не сможете стартовать программу. Добавьте несколько строчек  кода  к классу,  который  сделал  для  вас  Eclipse,  чтобы он выглядел так:

public class PetMaster {

public static void main(String[] args) { String petReaction;

Pet myPet = new Pet();

myPet.eat();

petReaction = myPet.say("Чик!! Чирик!!"); System.out.println(petReaction); myPet.sleep();

}

}Не  забудьте нажать Ctrl-­?S , чтобы сохранить и откомпилировать этот класс! А чтобы стартовать программу PetMaster, выберите следующие меню в Eclipse Run, Run…, New и напечатайте имя главного класса -­?

PetMaster.  Нажмите на кнопку Run , и программа напечатает такойтекст:  Я очень голоден, давайте перекусим чипсами!

Ну ладно!! Чик!! Чирик!!

Спокойной ночи, до завтраPetMaster  – это вызывающий класс и он сначала создает экземпляр объекта Pet. Он объявляет переменную myPet and и использует оператор new:

Pet myPet = new Pet();

Эта строчка объявляет переменную myPet типа Pet (да это так, вы можете использовать любые классы, созданные вами, как новые типы данных). Теперь переменная myPet знает место в памяти, где был создан экземпляр объекта Pet, и можно пользоваться этой переменной, чтобы вызывать любые методы класса Pet, например:

myPet.eat();

Если  метод возвращает какое-­?нибудь значение, его можно вызывать по-другому. Объявите переменную того-­?же типа,  что и возвращаемое значение и вызывайте метод так, чтобы присвоить это значение переменной, например так:

String petReaction;

petReaction = myPet.say("Чик!! Чирик!!");

Теперь  возвращенное значение находится в переменной petReaction иего очень просто можно распечатать:

System.out.println(petReaction);

Источник: Java  Programming for Kids, Parents and Grandparents by Yakov Fain

По теме:

  • Комментарии