Java практическое задание: создание класса каталога вин с целью демонстрации ООП
При изучении языков программирования немалое внимание в современном обучении оказывается практической стороне вопроса. В данной статье расмотрим вариант решения одного практического задания на языке Java. Обращаю ваше внимание, что это именно вариант - исходный текст задания подразумевает множественное толкование. Однако, и на это тоже обращаю внимание: вариант правильный.
Итак, вот непосредственно текст самого практического задания на Java:
Используя принципы ООП и язык Java, опишите класс Wine , который в дальнейшем может быть применим при создании электронного каталога вин (сам электронный каталог вин вам пока реализовывать не нужно). Продумайте, какие поля и методы понадобятся классу Wine, для выполнения следующих функций:Решение практического задания
1. Хранение информации о виде вина: название, торговая марка, страна, дата разлива, многострочное примечание (может быть любое количество строк). 2. Доступ (установка и получение значений) к хранимой информации.
3. Расчёт выдержки вина (текущая дата даётся как аргумент).
Отдельно разработайте вспомогательный класс, который демонстрирует работоспособность вашего класса.
Как видно из текста задания, потребуется два класса: основной и вспомогательный - для демонстрации. Основным у нас будет класс Wine, вспомогательным - Main. Класс Wine:
import java.text.SimpleDateFormat; import java.util.Date; public class Wine { //1. Хранение информации о виде вина: название, торговая марка, страна, дата // разлива, многострочное примечание (может быть любое количество строк). private String name; private String trademark; private String country; private String dateSpill; private String note; //Методы установки значений. public void setName(String name) { this.name = name; } public void setTrademark(String trademark) { this.trademark = trademark; } public void setCountry(String country) { this.country = country; } public void setDateSpill(String dateSpill) { this.dateSpill = dateSpill; } public void setNote(String note) { this.note = note; } //методы получения значений public String getName() { return this.name; } public String getTrademark() { return this.trademark; } public String getCountry() { return this.country; } public String getDateSpill() { return this.dateSpill; } public String getNote() { return this.note; } //3. Расчёт выдержки вина (текущая дата даётся как аргумент). public long calculationOfExposure (String curDate) { SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); Date date1 = null; Date date2 = null; try { date1 = format.parse(curDate); date2 = format.parse(dateSpill); } catch (java.text.ParseException e) { e.printStackTrace(); } long difference = date1.getTime() - date2.getTime(); long days = difference / (24 * 60 * 60 * 1000); //возвращается число дней return days; } }Собственно говоря, все должно быть понятно из текста программы - имеющиеся комментарии подчеркивают моменты, которые необходимо реализовать в практическом задании. Отдельно стоит отметить только метод calculationOfExposure, с помощью которого рассчитывается время выдержки вина: здесь метод, как и необходимо принимает текущую дату (curDate), преобразовывает её и выдает разницу, прошедшую со дня разлива.
А это класс Main - вспомогательный класс, который демонстрирует работоспособность класса Wine:
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; public class Main { public static void main(String[] args) { //создаем экземпляр класса Wine Wine w1 = new Wine(); //устанавливаем значения - информацию для экземпляра данного класса w1.setName("Hospices de Beaune"); w1.setDateSpill("01/02/2009"); w1.setCountry("Франция"); w1.setTrademark("Дом Пьера Грубера"); w1.setNote("какое-то примечание"); //получаем информацию из класса String name = w1.getName(); String country = w1.getCountry(); String trademark = w1.getTrademark(); String note = w1.getNote(); //определение текущей даты Date d = new Date(); DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); df.setTimeZone(TimeZone.getTimeZone("EAT")); String d1 = df.format(d); //вызываем метод, определяющий выдержку вина long days = w1.calculationOfExposure(d1); //и выводим результат на консоль System.out.println("Выдержка вина под названием "+name+" составляет "+days+" дней" ); System.out.println("Его торговая марка: "+trademark); System.out.println("Страна производства: "+country); System.out.println("Примечание: "+note); } }Этот файл просто демонстрация работы: создается экземляр класса, устанавливаются значения полей, затем эти же значения извлекаются и выводятся на консоль. В результате компиляции программы и запуска файла Main.class вы должны наблюдать в консоли примерно следующую картину:
Вот и все, цель достигнута: практическое задание выполнено. Скачать исходники и скомпилированные классы можно здесь. Также замечу, что запускать необходимо именно класс Main, так как класс Wine - он только хранит структуру, им можно пользоваться, но для работы требуются другие классы.
Если у вас есть какие-либо вопросы по написанию программ на языке Java или потребуется любая другая помощь по данному языку (практические, курсовые работы), то вы в любое время можете обратиться ко мне на почту up777up@yandex.ru или постучать в скайп up777up2. За очень умеренное денежное вознаграждение я вам с удовольствием помогу.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Читайте также:
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.