حتما پیش از شرکت در مسابقه، توضیحات مسابقه را در بلاگ Quera مطالعه کنید.

هم‌چنین برای شرکت در دوره‌های کارآموزی بل‌تات لطفا این فرم را تکمیل کنید.

توجه کنید که نیازی به پاسخ دادن به همه‌ی سوالات نیست؛ زمینه‌های مورد نظرتان را انتخاب کرده و در آن‌ها در مسابقه شرکت کنید.

جاوا - اپلیکیشن کیوان


کیوان برنامه دارد یک اپلیکیشن جاوا برای انجام عملیات مقایسه‌ای به صورت جامع طراحی کند. به دلیل سنگین بودن پیاده‌سازی‌های مربوط به این اپلیکیشن، او تصمیم می‌گیرد که از شما برای تولید این اپلیکیشن کمک بگیرد.
کیوان یک آدم سختگیر است و علاوه بر اینکه (به شدت!!!) تاکید دارد قسمت‌های مختلف اپلیکیشن به درستی کار کنند، می‌خواهد خطاهای برنامه نویسی مربوط به آن‌ها نیز تا حد امکان در زمان کامپایل پیدا شوند.

شما قرار است قسمت مربوط به یافتن maximumها را در این پروژه پیاده‌سازی کنید. متد استاتیک findMax در کلاس Maximum را طوری پیاده‌سازی کنید که در برنامه‌ی زیر، خروجی مطابق کامنت‌ها باشد.

نکته‌ی مهم: دقت کنید که متد findMax باید با دسترسی public تعریف شود.

import java.util.Objects;

class Person {
    int rank;

    public Person(int rank) {
        this.rank = rank;
    }
}

class Developer extends Person implements Comparable<Person> {
    public Developer(int rank) {
        super(rank);
    }

    @Override
    public int compareTo(Person o) {
        return Integer.compare(rank, o.rank);
    }
}

class Boss extends Person implements Comparable<Boss> {
    int salary;

    public Boss(int rank, int salary) {
        super(rank);
        this.salary = salary;
    }

    @Override
    public int compareTo(Boss o) {
        return Integer.compare(salary, o.salary);
    }
}

class Employee extends Person implements Comparable<Boss> {
    int timeToWork;

    public Employee(int rank, int timeToWork) {
        super(rank);
        this.timeToWork = timeToWork;
    }

    @Override
    public int compareTo(Boss o) {
        return Integer.compare(timeToWork, o.salary);
    }
}

public class Maximum {
    public static void main(String[] args) {
        Integer a = Maximum.findMax(0, 1, 2, 3); // a = 3
        Person person1 = new Person(1);
        Person person2 = new Person(2);
        // Compile Error : Person should implements Comparable
        Maximum.findMax(person1, person2);

        Developer s1 = new Developer(20);
        Developer s2 = new Developer(0);
        Developer maxDeveloper = Maximum.findMax(s1, s2);
        System.out.println(Objects.requireNonNull(maxDeveloper).rank); // prints 20

        Boss boss1 = new Boss(3, 200);
        Boss boss2 = new Boss(2, 400);
        Boss boss3 = new Boss(1, 600);
        Boss maxBoss = Maximum.findMax(boss1, boss2, boss3);
        System.out.println(Objects.requireNonNull(maxBoss).salary); // prints 600

        Employee employee1 = new Employee(3, 10);
        Employee employee2 = new Employee(2, 20);
        Employee employee3 = new Employee(1, 5);
        // Compile Error : Employee should be compared to Boss only
        Employee maxEmployee = Maximum.findMax(employee1, employee2, employee3);
    }
}
Java

آن چه که باید آپلود کنید🔗

یک فایل zip که وقتی آن را باز می‌کنیم، در آن فقط فایل Maximum.java را ببینیم.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.