Showcasing Simple Interface Implementation With Counters

master
Hammy 4 years ago
parent e2ca162fa0
commit 8b45930137

@ -0,0 +1,18 @@
package src;
public class ByFives implements Counter {
private int num = 5;
private int nextNum;
@Override
public int countBy() {
return num;
}
@Override
public int getNextNum() {
return nextNum += num;
}
}

@ -0,0 +1,18 @@
package src;
public class ByFours implements Counter {
private int num = 4;
private int nextNum;
@Override
public int countBy() {
return num;
}
@Override
public int getNextNum() {
return nextNum += num;
}
}

@ -0,0 +1,18 @@
package src;
public class ByOnes implements Counter {
private int num = 1;
private int nextNum;
@Override
public int countBy() {
return num;
}
@Override
public int getNextNum() {
return nextNum += num;
}
}

@ -0,0 +1,18 @@
package src;
public class ByThrees implements Counter {
private int num = 3;
private int nextNum;
@Override
public int countBy() {
return num;
}
@Override
public int getNextNum() {
return nextNum += num;
}
}

@ -0,0 +1,18 @@
package src;
public class ByTwos implements Counter {
private int num = 2;
private int nextNum;
@Override
public int countBy() {
return num;
}
@Override
public int getNextNum() {
return nextNum += num;
}
}

@ -0,0 +1,7 @@
package src;
public interface Counter {
int countBy();
int getNextNum();
}

@ -0,0 +1,34 @@
package src;
public class CounterHelper {
private Counter[] counters;
private Counter userCounter = null;
public CounterHelper(Counter... counters) {
this.counters = counters;
}
public void doInteractive(int userInput) {
// Find the correct counter to count by.
// When no counter is found, display error message to user and quit the program
for (Counter counter: counters) {
if (userInput == counter.countBy())
this.userCounter = counter;
}
if (userCounter == null) {
System.out.println("Counter Not Found");
System.exit(0);
}
}
public void displayCounter(int iterations) {
// Show the counter for the number of iterations that the user inputted
System.out.println();
for (int i = 0; i < iterations; i++) {
System.out.println(userCounter.getNextNum());
}
}
}

@ -0,0 +1,40 @@
package src;
import java.util.Scanner;
public class CounterMain {
public static void main(String[] args) {
countUp();
countUpInteractively();
}
private static void countUp() {
ByTwos twos = new ByTwos();
ByFives fives = new ByFives();
// Display the first 5 numbers for each counter defined
for (int i = 0; i < 5; i++) {
System.out.println("Counting By " + twos.countBy());
System.out.println(twos.getNextNum());
System.out.println("Counting By " + fives.countBy());
System.out.println(fives.getNextNum());
}
}
private static void countUpInteractively() {
Scanner in = new Scanner(System.in);
System.out.println("Enter In The Number That You Want To Count:\n");
int userInput = in.nextInt();
CounterHelper helper = new CounterHelper(new ByTwos(), new ByThrees(), new ByFives());
helper.doInteractive(userInput);
System.out.println("Enter In The Number Of Times You Want To Count:\n");
int userIterations = in.nextInt();
helper.displayCounter(userIterations);
in.close();
}
}
Loading…
Cancel
Save