Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки
Національний університет „Львівська політехніка”
Кафедра EОМ
Звіт
з лабораторної роботи № 3
з дисципліни: Кросплатформні засоби програмування
Тема: класи та пакети
Мета: ознайомитися з процесом розробки класів та пакетів мовою Java.
Завдання
Написати та налагодити програму на мові Java, що реалізує у вигляді класу предметну область згідно варіанту. Програма має задовольняти наступним вимогам:
програма має розміщуватися в пакеті Група.Прізвище.Lab3;
клас має містити мінімум 3 поля, що є об’єктами класів, які описують складові частини предметної області;
клас має містити кілька конструкторів та мінімум 10 методів;
для тестування і демонстрації роботи розробленого класу розробити клас-драйвер;
методи класу мають вести протокол своєї діяльності, що записується у файл;
розробити механізм коректного завершення роботи з файлом (не надіятися на метод finalize());
програма має володіти коментарями, які дозволять автоматично згенерувати документацію до розробленого пакету.
Автоматично згенерувати документацію до розробленого пакету.
Скласти звіт про виконану роботу з приведенням тексту програми, результату її виконання та фрагменту згенерованої документації.
Дати відповідь на контрольні запитання.
Варіант
1. Людина
Код програми
App.java
/**
* Class App tests correct work Human Class
*
* @author blazhko
*
*/
public class App {
/**
* Static method main() is program entry point
*
* @param args
*/
public static void main(String[] args) {
Human human = new Human("Max", 20);
human.printInfo();
human.walk();
human.die();
human.stay();
}
}
Human.java
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
/**
* Class Human describes main human's function's
*
* @author blazhko
*
*
*/
public class Human {
public Eye rightEye;
public Eye leftEye;
public Head head;
public Hair hair;
private String name;
private int age;
public static int ID = 12345;
private File datafile;
private PrintWriter fout;
private boolean isLogEnable;
/**
* Constructor on default
*/
public Human() {
ID++;
this.name = "Jane Doe";
this.age = 0;
datafile = new File(this.name + ID + ".txt");
try {
logEnable();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
/**
* Constructor
*
* @param street
* @param number
*/
public Human(String name, int age) {
ID++;
this.name = name;
this.age = age;
datafile = new File(this.name + ID + ".txt");
try {
logEnable();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
/**
* Turn on log in file
*
* @throws FileNotFoundException
*/
private void logEnable() throws FileNotFoundException {
isLogEnable = true;
fout = new PrintWriter(datafile);
}
/**
* Turn off log in file and close thread
*/
private void logDisable() {
isLogEnable = false;
fout.close();
}
/**
* Start walking
*/
public void walk() {
System.out.println("Walking.....");
if (isLogEnable) {
fout.println("Walking.....");
}
}
/**
* Stop walking
*/
public void stay() {
System.out.println("Walking stopped ");
if (isLogEnable) {
fout.println("Walking stopped ");
}
logDisable();
}
/**
* Print main info about class object
*/
public void printInfo() {
System.out.println("Human ID" + ID);
System.out.println(" Name: " + name);
System.out.println(" Age: " + age);
if (isLogEnable) {
fout.println("Human ID" + ID);
fout.println(" Name: " + name);
fout.println(" Age: " + age);
}
}
/**
* human specs
*/
public void setSpecs() {
head = new Head();
rightEye = new Eye("blue");
leftEye = new Eye("red");
hair = new Hair("dark");
}
/**
* Human will die:(
*/
public void die() {
System.out.println("Human ID" + ID + " died");
System.out.println(" Name: " + name);
System.out.println(" Age: " + age);
if (isLogEnable) {
fout.println("Human ID" + ID + " died");
fout.println(" Name: " + name);
fout.println(" Age: " + age);
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Head.java
public class Head {
public Head() {
System.out.println("Head initializing.....");
}
public void addElement(Object element) {
System.out.println(element.toString() + " added to head");
}
}
Hair.java
public class Hair {
public String color;
private double length;
public Hair(String color) {
this.color = color;
length = 0.01;
}
public void grow() {
length += 0.01;
}
@Override
public String toString() {
return "hair: " + color;
}
public double getLength() {
return length;
}
}
Eye.java
public class Eye {
public String color;
public Eye(String color) {
this.color = color;
}
public void closeEyes() {
System.out.println("Eye closed");
}
@Override
public String toString() {
return "eye: " + color;
}
}
Рис. 1. Результат виконання програми.
Висновок: виконуючи дану лабораторну роботу я ознайомився з процесом розробки класів та пакетів мовою Java.