Gyakorlati alapok III.
Tömbműveletek objektumorientáltan
Az alábbi fejezetben 3 alapszintű tömbműveletet implementálunk (véletlenszám-generálás, minimum-, illetve maximumkeresés), de immár objektumorientáltan, azaz a funkciókat lényegében külön osztályokba rendezve. Ezen funkciók a következőek lehetnek:
-
Működtetés - erről a Main osztály gondoskodik, illetve a példányosítások is itt történnek,
-
Véletlen számok generálása és tömbbe zárása - erről az ArrayRandom osztály gondoskodik,
-
Minimum-, illetve maximumkeresés - erről a SelectionMinAndMax osztály gondoskodik - a 2 funkciót lehetett volna 2 önálló osztályba is tenni, de a jelen példában annyira összetartoznak, hogy inkább 1 osztályban hagytam őket,
-
Megjelenítés - erről a View osztály gondoskodik és lényegében csak konzolkiíró rutinokat tartalmaz.
Nézzük meg a futtatható Java-kódot:
Main.java
public class Main {
public static void main(String[] args) {
ArrayRandom arrayRandom = new ArrayRandom(10, 1000);
SelectionMinAndMax selectionMinAndMax = new
SelectionMinAndMax();
View view = new View();
int[] array = arrayRandom.setArray();
view.printArray(array);
view.printMin(selectionMinAndMax.searchingMin(array));
view.printMax(selectionMinAndMax.searchingMax(array));
}
}
ArrayRandom.java
public class ArrayRandom {
private int arraySize;
private int randomBound;
ArrayRandom (int arraySize, int randomBound) {
this.arraySize = arraySize;
this.randomBound = randomBound;
}
int[] setArray() {
int[] array = new int[arraySize];
for (int i = 0; i < array.length; i++){
array[i] = (int)(Math.random() *
randomBound);
}
for(int i = array.length-1; i > 0; i--)
for(int j = 0; j < i; j++)
if(array[j] >
array[j+1]){
int tarolo = array[j];
array[j] = array[j+1];
array[j+1] = tarolo;
}
return array;
}
}
SelectionMinAndMax.java
public class SelectionMinAndMax {
private int number = 0;
int searchingMin(int[] array) {
number = 101;
for(int i = 0; i < array.length; i++) {
if(array[i] < number){
number =
array[i];
}
}
return number;
}
int searchingMax(int[] array) {
for(int i = 0; i < array.length; i++) {
if(array[i] > number){
number =
array[i];
}
}
return number;
}
}
View.java
public class View {
void printArray(int[] array) {
for (int i = 0; i < array.length; i++){
System.out.print(array[i] + " ");
}
System.out.println();
}
void printMin(int number) {
System.out.println("The minimum of the array is: " + number);
}
void printMax(int number) {
System.out.println("The maximum of the array is: " + number);
}
}
Végeredmény (például):
1 38 109 242 289 352 364 712 906 923
The minimum of the array is: 1
The maximum of the array is: 923