Last active
January 26, 2016 13:28
-
-
Save Viacheslav77/cb3aac665ef0a6ea1505 to your computer and use it in GitHub Desktop.
Developers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public abstract class Developer { | |
protected String job; | |
protected String name; | |
protected double basicSalary; | |
protected int experience; | |
public Developer(String job, String name, double basicSalary, int experience) { | |
this.job = job; | |
this.name = name; | |
this.basicSalary = basicSalary; | |
this.experience = experience; | |
} | |
public String getJob(){ | |
return job; | |
} | |
public String getName() { | |
return name; | |
} | |
public double getBasicSalary() { | |
return basicSalary; | |
} | |
public abstract double getSalary(); | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package Developers; | |
public class JuniorDeveloper extends Developer { | |
public JuniorDeveloper(String job, String name, double basicSalary, int experience) { | |
super(job, name, basicSalary, experience); | |
} | |
@Override | |
public double getSalary() { | |
return basicSalary + (experience > 0 ? basicSalary * experience * 0.1 : 0); | |
} | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package Developers; | |
// 1. Написать своего наследника Developer. Добавить его в существующий проект. | |
// 2.Создать список разработчиков и заполнить его случайным образом. Вывести на экран | |
// только Senior developer-овс зарплатой больше 1200у.е. | |
// 3.Написать код, который разделит список объектов Developer на 3 отдельных списка для | |
import java.util.Random; | |
public class Main { | |
public static void main(String[] args) { | |
Developer[] list = { | |
new PodavanDeveloper("PodavanDeveloper", "Vika", 500, 0), | |
new JuniorDeveloper("JuniorDeveloper", "Mike", 500, 0), | |
new JuniorDeveloper("JuniorDeveloper", "Dima", 500, 1), | |
new JuniorDeveloper("JuniorDeveloper", "Vova", 500, 2), | |
new SeniorDeveloper("SeniorDeveloper", "Jack", 500, 5), | |
new TeamLeadDeveloper("TeamLeadDeveloper", "Robby", 500, 7) | |
}; | |
StringBuilder sb; | |
for (Developer d : list) { | |
sb = new StringBuilder() // !!! | |
.append(d.getJob()) | |
.append(" ") | |
.append(d.getName()) | |
.append(": ") | |
.append(d.getBasicSalary()) | |
.append(" -> ") | |
.append(d.getSalary()); | |
System.out.println(sb.toString()); | |
} | |
//Создать список разработчиков и заполнить его случайным | |
//образом. Вывести на экран только Senior developer-ов с | |
//зарплатой больше 1200 у.е. | |
String [] name = { "Vika","Galia", "Valia","Petia","Vasia","Nastia","Vova","Slava"}; | |
String [] job = { "PodavanDeveloper", "JuniorDeveloper","SeniorDeveloper", "TeamLeadDeveloper"}; | |
Developer [] list1 = new Developer [100]; | |
for(int i=0; i< list1.length; i++){ | |
Random r = new Random (); | |
int j = r.nextInt(4); | |
switch (j){ | |
case 0: | |
list1 [i] = new PodavanDeveloper(job[j] , name[r.nextInt(7)], 500, 0); | |
break; | |
case 1: | |
list1 [i] = new JuniorDeveloper(job[j] , name[r.nextInt(7)], 500, 0); | |
break; | |
case 2: | |
list1 [i] = new SeniorDeveloper(job[j] , name[r.nextInt(7)], 500, r.nextInt(15)); | |
break; | |
case 3: | |
list1 [i] = new TeamLeadDeveloper(job[j] , name[r.nextInt(7)], 500, r.nextInt(15)); | |
break; | |
} | |
} | |
System.out.println("\n" + "-------------------Созданный случайным образом список разработчиков ---------------------" + "\n"); | |
for (Developer d : list1) { | |
sb = new StringBuilder() | |
.append(d.getJob()) | |
.append(" ") | |
.append(d.getName()) | |
.append(": ") | |
.append(d.getBasicSalary()) | |
.append(" -> ") | |
.append(d.getSalary()); | |
System.out.println(sb.toString()); | |
} | |
System.out.println("-------------------SeniorDeveloper c зарплатой > 1500 --------------------------" + "\n" ); | |
for (Developer d : list1) { | |
if ((d.getSalary()> 1500) && d.getJob().equals("SeniorDeveloper")){ | |
sb = new StringBuilder() // !!! | |
.append(d.getJob()) | |
.append(" ") | |
.append(d.getName()) | |
.append(": ") | |
.append(d.getBasicSalary()) | |
.append(" -> ") | |
.append(d.getSalary()); | |
System.out.println(sb.toString()); | |
} | |
} | |
//Написать код, который разделит список объектов Developer | |
//на 3 отдельных списка для Juniors, Seniors и Team Leads. | |
//Вывести списки на экран. | |
System.out.println("\n" +"-------------------4 отдельных списка для Podavans, Juniors, Seniors и Team Leads. --------------------------" + "\n"); | |
Developer [] podavan = new Developer[100]; | |
Developer [] junior = new Developer[100]; | |
Developer [] senior = new Developer[100]; | |
Developer [] teamliad = new Developer[100]; | |
int p,j,s,t; | |
p=j=s=t=0; | |
for (int i = 0; i< list1.length; i++){ | |
if(list1[i].getJob().equals("PodavanDeveloper")){ | |
podavan [p] = list1[i]; | |
p++; | |
} | |
if(list1[i].getJob().equals("JuniorDeveloper")){ | |
junior [j] = list1[i]; | |
j++; | |
} | |
if(list1[i].getJob().equals("SeniorDeveloper")){ | |
senior [s] = list1[i]; | |
s++; | |
} | |
if(list1[i].getJob().equals("TeamLeadDeveloper")){ | |
teamliad [t] = list1[i]; | |
t++; | |
} | |
} | |
//System.out.println(p + " " + j + " " + s + " " + t); | |
System.out.println("\n" +"Подаваны " + p +" --------------" + "\n"); | |
prn(podavan, p); | |
System.out.println("\n" + "Джуны "+ j+ "\n"); | |
prn(junior, j); | |
System.out.println("\n" + "Сеньёры " + s + "\n"); | |
prn(senior, s); | |
System.out.println("\n" + "Тимлиды " + t + "\n"); | |
prn(teamliad, t); | |
} | |
public static void prn(Developer[] d, int k){ | |
StringBuilder sb; | |
for (int i =0; i < k; i++) { | |
sb = new StringBuilder() // !!! | |
.append(d[i].getJob()) | |
.append(" ") | |
.append(d[i].getName()) | |
.append(": ") | |
.append(d[i].getBasicSalary()) | |
.append(" -> ") | |
.append(d[i].getSalary()); | |
System.out.println(sb.toString()); | |
} | |
} | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package Developers; | |
//Написать своего наследника Developer. Добавить его в | |
//существующий проект. | |
public class PodavanDeveloper extends Developer{ | |
public PodavanDeveloper (String job, String name, double basicSalary, int experience){ | |
super (job, name, basicSalary, experience); | |
} | |
@Override | |
public double getSalary (){ | |
return (basicSalary * 0.5)+ (experience > 0 ? basicSalary * experience * 0.1 : 0); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package Developers; | |
public class SeniorDeveloper extends Developer { | |
public SeniorDeveloper(String job, String name, int basicSalary, int experience) { | |
super(job, name, basicSalary, experience); | |
} | |
@Override | |
public double getSalary() { | |
return (basicSalary * 2) + (experience > 0 ? basicSalary * experience * 0.1 : 0); | |
} | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package Developers; | |
public class TeamLeadDeveloper extends Developer { | |
public TeamLeadDeveloper(String job, String name, double basicSalary, int experience) { | |
super(job, name, basicSalary, experience); | |
} | |
@Override | |
public double getSalary() { | |
return (basicSalary * 4) + (experience > 0 ? basicSalary * experience * 0.1 : 0); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment