Задать вопрос
  • Решила задачу по Java, но я новичок, и мое решение "наивное", может у кого-то есть варианты получше?

    @heatherr Автор вопроса
    azerphoenix , Jacen11 спасибо за ответ. Прочитала про модификаторы доступа, инкапсуляцию, геттеры/сеттеры, добавила в код. Работает, но я не знаю, насколько это правильно сделано. Это задача с собеседования, я запомнила условия. Из того, что я помню "железно", условия которые должны быть соблюдены: должен быть метод evaluate, он должен выводить в консоль можем/не можем нанять человека, он должен определять, что желаемая зарплата не больше предлагаемой. Должно быть 2 класса: компания и человек. У каждого класса обязательно должны быть параметры: человек - Name, желаемая зарплата, компания - Name, предлагаемая зарплата. Там так и было написано: имена переменных у компании и человека совпадали, Name.

    public class Task {
    
        public static void main (String [] args) {
    
            Employer company = new Employer("Godel", 500);
            company.setCompanyName("Microsoft");
            company.setCompanyName("EPAM");
            company.setSalaryProposed(600);
            company.setCompanyName("CoolCompany");
            company.setSalaryProposed(1000);
    
            Employee person = new Employee("Vasya", 400);
            person.setPersonName("Petya");
            person.setSalaryDesired(300);
            person.setPersonName("Ivan");
            person.setSalaryDesired(800);
    
            SalaryService1.evaluate(company.getSalaryProposed(), person.getSalaryDesired(), company.getCompanyName(), person.getPersonName());
        }
    }
    
    class Employer {
    
        private String name;
        private int salaryProposed;
    
        public Employer (String companyName, int salaryProposed) {
            this.name = companyName;
            this.salaryProposed = salaryProposed;
        }
    
        public String getCompanyName () {
            return this.name;
        }
        public void setCompanyName (String companyName) {
            this.name = companyName;
        }
    
        public int getSalaryProposed () {return this.salaryProposed;}
        public void setSalaryProposed (int salaryProposed) {this.salaryProposed = salaryProposed;}
    }
    
    class Employee {
        private String name;
        private int salaryDesired;
    
        public Employee (String personName, int salaryDesired) {
            this.name = personName;
            this.salaryDesired = salaryDesired;
        }
    
        public String getPersonName () {
            return this.name;
        }
        public void setPersonName (String personName) {
            this.name = personName;
        }
    
        public int getSalaryDesired () {return this.salaryDesired;}
        public void setSalaryDesired (int salaryDesired) {this.salaryDesired = salaryDesired;}
    }
    
    class SalaryService1 {
    
        public static void evaluate (int salaryProposed, int salaryDesired, String companyName, String personName) {
            System.out.println("Company name: " + companyName + "\tSalary proposed: " + salaryProposed + "\nPerson name: " + personName + "\tSalary desired: " + salaryDesired);
    
            if (salaryProposed >= salaryDesired) {
                System.out.println("\nWe can hire " + personName + "! :)");
            } else {
                System.out.println("\nWe can't :(");
            }
        }
    }
    Ответ написан