Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[JAVA] niedziałający przykład z książki "JAVA PODSTAWY&

toffik 03 Maj 2010 20:26 666 0
  • #1 03 Maj 2010 20:26
    toffik
    Poziom 15  

    witam
    Nie miem zbytnio co może być przyczyną niedziałającego kodu. wszystko już sprawdziłem w miarę moich możliwości. jestem początkujący w tym języku. prosiłbym o pomoc.
    Oto błąd który wypisuje mi ECLIPSE. system na którym pracuję to windows 7.

    Exception in thread "main" java.lang.NoSuchMethodError: Employee.<init>(Ljava/lang/String;DIII)V
    at Manager.<init>(ManagerTest.java:78)
    at ManagerTest.main(ManagerTest.java:13)

    Poniżej zamieszczam kod programu.

    /**
    @version 1.21 2004-02-21
    @author Cay Horstmann
    */

    import java.util.*;

    public class ManagerTest
    {
    public static void main(String[] args)
    {
    // construct a Manager object
    Manager boss = new Manager("Carl Cracker", 80000, 1987, 12, 15);
    boss.setBonus(5000);

    Employee[] staff = new Employee[3];

    // fill the staff array with Manager and Employee objects

    staff[0] = boss;
    staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
    staff[2] = new Employee("Tommy Tester", 40000, 1990, 3, 15);

    // print out information about all Employee objects
    for (Employee e : staff)
    System.out.println("name=" + e.getName()
    + ",salary=" + e.getSalary());
    }
    }

    class Employee
    {
    public Employee(String n, double s, int year, int month, int day)
    {
    name = n;
    salary = s;
    GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
    hireDay = calendar.getTime();
    }

    public String getName()
    {
    return name;
    }

    public double getSalary()
    {
    return salary;
    }

    public Date getHireDay()
    {
    return hireDay;
    }

    public void raiseSalary(double byPercent)
    {
    double raise = salary * byPercent / 100;
    salary += raise;
    }

    private String name;
    private double salary;
    private Date hireDay;
    }

    class Manager extends Employee
    {
    /**
    @param n the employee's name
    @param s the salary
    @param year the hire year
    @param month the hire month
    @param day the hire day
    */
    public Manager(String n, double s, int year, int month, int day)
    {
    super(n, s, year, month, day);
    bonus = 0;
    }

    public double getSalary()
    {
    double baseSalary = super.getSalary();
    return baseSalary + bonus;
    }

    public void setBonus(double b)
    {
    bonus = b;
    }

    private double bonus;
    }

    Dodano po 43 [minuty]:

    czy u Was w ogóle działa ten przykład? proszę o sprawdzenie.

    Dodano po 1 [godziny] 53 [minuty]:

    nie wiem co było przyczyną. jednak utworzenie nowego projektu rozwiązało problem. Mam nadzieje, ze niedlugo dowiem się co było przyczyną.
    zamykam temat

    0 0