package ru.job4j.extension;

/**
 * Class Teacher describes a profession of a teacher.
 *
 * @author Alex Proshak (olexandr_proshak@ukr.net)
 * @version $Id$
 * @since 0.1
 */
public class Teacher extends Profession {
    /**
     * A science degree.
     */
    private String degree;

    /**
     * A simple constructor.
     */
    public Teacher() {
    }

    /**
     * A constructor with parameters.
     * @param name of a teacher.
     * @param specialization of a teacher.
     * @param graduatedSchool high school was graduated by a teacher.
     * @param experience of working as a teacher.
     * @param degree science degree.
     */
    public Teacher(String name, String specialization, String graduatedSchool, int experience, String degree) {
        super(name, specialization, graduatedSchool, experience);
        this.degree = degree;
    }

    /**
     * Teaching a student by subject.
     * @param student for teaching
     * @param subject of teaching
     */
    public void teach(Human student, String subject) {
        System.out.println("A teacher " + this.getName() + " teaches the student "
                + student.getName() + " of a subject " + subject);
    }

    /**
     * consultation a student by subject.
     * @param student for teaching
     * @param subject of teaching
     */
    public void consultationStudent(Human student, String subject) {
        System.out.println("A teacher " + this.getName() + " consults a student "
                + student.getName() + " of a subject " + subject);
    }

    /**
     * Giving a task for a student.
     * @param student for a task.
     * @param task for a student.
     */
    public void giveTask(Human student, Task task) {
        System.out.println("A teacher " + this.getName() + " gives a task to a student "
                + student.getName() + " of a task " + task.getName());
    }

    /**
     * Checking a task and return an evaluation of task.
     * @param student for a task.
     * @param task for a student.
     * @return grade for a task (1-5).
     */
    public int checkTask(Human student, Task task) {
        int grade = 5;
        return grade;
    }
}

@@ -964,32 +964,68 @@
 ect of teaching%0A
+     * @return an information line.%0A
      */%0A    publ
@@ -1027,20 +1027,22 @@
  public 
-void
+String
  teach(H
@@ -1081,35 +1081,23 @@
         
-System.out.println(
+return 
 %22A teach
@@ -1200,33 +1200,32 @@
 ject %22 + subject
-)
 ;%0A    %7D%0A%0A    /**
@@ -1232,17 +1232,17 @@
 %0A     * 
-c
+C
 onsultat
@@ -1250,39 +1250,36 @@
 on a student by 
-subject
+task
 .%0A     * @param 
@@ -1305,39 +1305,36 @@
 g%0A     * @param 
-subject
+task
  of teaching%0A   
@@ -1326,24 +1326,60 @@
 of teaching%0A
+     * @return an information line.%0A
      */%0A    
@@ -1385,20 +1385,22 @@
  public 
-void
+String
  consult
@@ -1431,53 +1431,36 @@
 nt, 
-String subject) %7B%0A        System.out.println(
+Task task) %7B%0A        return 
 %22A t
@@ -1554,33 +1554,39 @@
 + %22 
-of a subject %22 + subject)
+by %22 + task.getName() + %22 task%22
 ;%0A  
@@ -1698,24 +1698,60 @@
  a student.%0A
+     * @return an information line.%0A
      */%0A    
@@ -1761,12 +1761,14 @@
 lic 
-void
+String
  giv
@@ -1813,27 +1813,15 @@
     
-System.out.println(
+return 
 %22A t
@@ -1946,17 +1946,16 @@
 etName()
-)
 ;%0A    %7D%0A

change a returning type of the methods teach, consultationStudent.