Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/out
/.idea
92 changes: 92 additions & 0 deletions Employee.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
import java.util.Scanner;

public class Employee {

// Define employee properties
private String name;
private int age;
boolean isActive;
private double salary;

// Set properties of employee
public Employee(String name, int age, boolean isActive, double salary) {
setName(name);
setAge(age);
setActive(isActive);
setSalary(salary);
}

// Getters and Setters
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public boolean isActive() {
return isActive;
}

public void setActive(boolean active) {
isActive = active;
}

public double getSalary() {
return salary;
}

public void setSalary(double salary) {
this.salary = salary;
}
}

class Intern extends Employee {
// Set properties of Intern
// Using super to get properties from Employee class
public Intern(String name, int age, boolean isActive, double salary) {
super(name, age, isActive, salary);
}


// Custom setSalary to check if intern
// has higher salary than 20000
public void setSalary(double salary) {
double maxInternSalary = 20000;

// If salary is higher than maxInternSalary
if(salary > maxInternSalary){
// Print warning that salary exceeds limit
// Set salary to maxInternSalary
System.out.println("!!! [INTERN] " + getName() + "'s salary exceeds maximum salary of €" + maxInternSalary + " (€" + salary + ")");
System.out.println("!!! Type \"continue\" to set " + getName() + "'s salary to €" + maxInternSalary + " or \"edit\" to change " + getName() + "'s salary");
Scanner sc = new Scanner(System.in);
String validate = sc.nextLine();

// Continue by automatically setting the salary to the maxInternSalary
if(validate.equals("continue")){
System.out.println("!!! Setting " + getName() + "'s salary to €" + maxInternSalary);
super.setSalary(20000);
}
// Edit the salary manually
else if(validate.equals("edit")){
System.out.println("Enter the new salary for " + getName());
double newSalary = sc.nextDouble();
super.setSalary(newSalary);
}
}
// Set salary as passed
else {
super.setSalary(salary);
}
}
}
90 changes: 90 additions & 0 deletions Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
import java.util.ArrayList;

public class Main {
public static void main(String[] args) {
System.out.println("========= TASK 1 & 2 =========");
// Call maxMinDiff method
maxMinDiff();

System.out.println("\n========= TASK 3 & 4 =========");
// Create array of Employee objects using ArrayList
ArrayList<Employee> employees = new ArrayList<>();
employees.add(new Employee("Alex", 21, true, 23845));
employees.add(new Employee("Ben", 25, true, 21943));
employees.add(new Employee("Charlie", 23, false, 0));
employees.add(new Intern("David", 28, true, 18500));
employees.add(new Employee("Elizabeth", 22, true, 19945));
employees.add(new Employee("Frank", 26, true, 22345));
employees.add(new Employee("George", 27, true, 23845));
employees.add(new Intern("Hannah", 22, true, 18500));
employees.add(new Intern("Isabella", 23, true, 18500));
employees.add(new Intern("Jack", 24, true, 21900));

// For loop to print employee information
for (Employee employee : employees) {
// if employee is an intern
if (employee instanceof Intern) {
// Print intern information
System.out.println("\nIntern:" + "\nName: " + employee.getName() + "\nAge: " + employee.getAge() + "\nIs active: " + employee.isActive() + "\nSalary: €" + employee.getSalary());
}
// if employee is not an intern
else {
// Print employee information
System.out.println("\nEmployee:" + "\nName: " + employee.getName() + "\nAge: " + employee.getAge() + "\nIs active: " + employee.isActive() + "\nSalary: " + employee.getSalary());
}
}
}

// Method to print maximum, minimum and difference between highest and lowest numbers in an array
public static void maxMinDiff() {
// Creating array using ArrayList
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(3);
numbers.add(2);
numbers.add(7);
numbers.add(9);
numbers.add(23);
numbers.add(12);
numbers.add(18);

// Print the numbers array as string
System.out.println("Numbers: " + numbers);

// Define variables
int highestNumber = 0;
int lowestNumber = Integer.MAX_VALUE;
int secondLowestNumber = Integer.MAX_VALUE;

// For loop going through all numbers in array
for (int number : numbers) {
// if current number is higher than highestNumber
// set highestNumber to current number
if(number > highestNumber){
highestNumber = number;
}

// if current number is lower than lowestNumber
// set lowestNumber to current number
if(number < lowestNumber){
lowestNumber = number;
}
}

// For loop again to get the second-lowest number
for (int number : numbers) {
// if current number is lower than secondLowestNumber and
// higher than lowestNumber, set secondLowestNumber to current number
if(number < secondLowestNumber && number > lowestNumber){
secondLowestNumber = number;
}
}

// Print results
System.out.println("Highest number: " + highestNumber);
System.out.println("Lowest number: " + lowestNumber);
System.out.println("Difference between highest and lowest numbers: " + (highestNumber-lowestNumber));
System.out.println("Second-lowest number: " + secondLowestNumber);

}
}