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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Программы на заказ
Отзывы
Контакты