title: Java class "cannot be resolved to a type"
body: <p>This is the error I'm getting:</p>
  
  <pre class="lang-none prettyprint-override"><code>Exception in thread "main" java.lang.Error: Unresolved compilation problem:  
      TeamLeader cannot be resolved to a type
  
      at TeamLeadDemo.main(TeamLeadDemo.java:26)
  </code></pre>
  
  <p>This is my code:</p>
  
  <pre><code>import java.util.Scanner;
  
  public class Employee {
      public String empName, empNumber, hireDate;    
  
      public class TeamLeadDemo {}
  
      public Employee(String empName, String empNumber, String hireDate) {
          this.setEmpName(empName);
          this.setEmpNumber(empNumber);
          this.setHireDate(hireDate);
      }
  
      public void setEmpName(String empName) {
           this.empName = empName;
      }
          public void setEmpNumber(String empNumber) {
           this.empNumber = empNumber;
      }
      public void setHireDate(String hireDate) {
           this.hireDate = hireDate;
      }
      public String getEmpName() {
          return empName;
      }
      public String getEmpNumber() {
          return empNumber;
      }
      public String getHireDate() {
          return hireDate;
      }
  
      public class ShiftSupervisor extends Employee {
          public double annualSalary, annualProduction;
          //constructor
          public ShiftSupervisor(String empName, String empNumber,
                                 String hireDate, double annualSalary,
                                 double annualProduction) {
              super(empName,empNumber, hireDate);
              this.setAnnualSalary(annualSalary);
              this.setAnnualProduction(annualProduction);
          }
  
          public double getAnnualSalary() {
              return annualSalary;
          }
          public double getAnnualProduction() {
              return annualProduction;
          }
          public void setAnnualSalary(double annualSalary) {
              this.annualSalary = annualSalary;
          }
          public void setAnnualProduction(double annualProduction) {
              this.annualProduction = annualProduction;
          }
  
          public String toString() {
              return "Name: "+ getEmpName() + "\nEmpID: "+ getEmpNumber()
                     + "\nHire Date: "+ getHireDate() + "\nAnnual Salary: "
                     + annualSalary + "\nProduction: "+ annualProduction;
          }
  
          public class employeeStart {
              public void main(String[] args) {
                  String name, id, date;
                  double sal, prod;
  
                  //create scanner object
                  Scanner keyboard = new Scanner(System.in);
  
                  //inputting data
                  System.out.println("Enter Name: ");
                  name = keyboard.nextLine();
                  System.out.println("Enter id: ");
                  id = keyboard.nextLine();
                  System.out.println("Enter Hire Date: ");
                  date = keyboard.nextLine();
                  System.out.println("Enter Annual: ");
                  sal = keyboard.nextDouble();
                  System.out.println("Enter production: ");
                  prod = keyboard.nextDouble();
  
                  //instantiating object
                  ShiftSupervisor pw = new ShiftSupervisor(name, id, date, sal, prod);
  
                  //outputting data
                  System.out.println("Employee Details: \n" + pw);
              }
          }
          public class TeamLeader {
              public double monthlyBonus;
              public int minTraining, trainingPresent;    
  
              public TeamLeader(double monthlyBonus, int minTraining, int trainingPresent) {
                  this.setMonthlyBonus(monthlyBonus);
                  this.setMinTraining(minTraining);
                  this.addtrainingPresent(trainingPresent);                    
              }
  
              public void setMonthlyBonus(double monthlyBonus) {
                  this.monthlyBonus = monthlyBonus;
              }
              public void setMinTraining(int minTraining) {
                  this.minTraining = minTraining;
              }
              public void setTrainingPresent(int t) {
                  trainingPresent = t;
              }
              public void addtrainingPresent(int hours) {
                  trainingPresent += hours;
              }
              public double getMonthlyBonus() {
                  return monthlyBonus;
              }
              public int getMinTraining() {
                  return minTraining;
              }
              public int getTrainingPresent() {
                  return trainingPresent;
              }
              public String toString() {
                  return "Bonus: "+ getMonthlyBonus() + "\nMinimum Training: "
                  + getMinTraining() + "\nAttendence: "+ getTrainingPresent();
              }
          }
      }
  }
  </code></pre>
  
  <p>In addition, I declared this in a separate class:</p>
  
  <pre><code>import java.util.Scanner;
  
  public class TeamLeadDemo extends Employee {
      public TeamLeadDemo(String empName, String empNumber, String hireDate) {
          super(empName, empNumber, hireDate);
          // TODO Auto-generated constructor stub
      }
  
  public static void main(String[] args) {
      double sal;
      int min, atten;
  
      //create scanner object
      Scanner keyboard = new Scanner(System.in);
  
      //inputting data
      System.out.println("Enter minimum training: ");
      min = keyboard.nextInt();
      System.out.println("Enter id: ");
      atten = keyboard.nextInt();
      System.out.println("Enter Bonus: ");
      sal = keyboard.nextDouble();
  
      //instantiating object
      ShiftSupervisor pw = new TeamLeader(sal, min, atten);
  
      //outputting data
      System.out.println("Employee Details:\n" + pw);
  
      }
  }
  </code></pre>
  
  <p>What is causing this error and how might I resolve it?</p>
  
  <p>EDIT: Indentation, whitespace, naming conventions and readability issues have been somewhat addressed.</p>