Hallo Leute,
ich bin am verzweifeln. Ich soll das untenstehende UML diagramm umsetzen. Die Klassen Neutral, Average und Limiter sind gegeben + einem Testprogramm.
Nun habe ich ein Interface FIRfilter erstellt und eine Klasse Velocity die von der Klasse Limiter erbt und das Interface FIRfilter implementiert (keine Ahnung ob das so korrekt gesagt wurde
)
Da nun die Klasse Average von der Klasse Neutral erbt muss ich bei der Klasse Average auch "extends Neutral" einfügen. Und bei der Klasse Neutral muss ich dann "implements FIRfilter" einsetzen oder?
Ich habe mich dumm und dämlich "gegooglet". Klassen und Interfaces bringen mich an meine Grenzen. Ich würde mich sehr freuen wenn ihr mir da helfen würdet
ich bin am verzweifeln. Ich soll das untenstehende UML diagramm umsetzen. Die Klassen Neutral, Average und Limiter sind gegeben + einem Testprogramm.
Java:
package myProg;
import java.util.*;
import xxxxX.digFilters.*;
public class TestProg {
public static void main(String[] args)
{
System.out.println("Filterergebnisse xxxxX :");
FIRtest(new Neutral());
FIRtest(new Average());
FIRtest(new Velocity());
FIRtest(new Velocity(10.0));
}
public static void FIRtest(FIRfilter filter)
{
final Double[] inData = {0.0,1.0,2.0,3.0,4.0,5.0,20.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0};
double res = 0.0;
System.out.print(filter.GetFilterName());
for (int ii = 0; ii<=(inData.length - FIRfilter.filterLength); ii++)
{
//geeignete Methoden des Interfaces aufrufen um geforderte Ausgabe zu erhalten ...
// ...
System.out.format("%6.1f", res);
}
System.out.println();
}
}
Java:
package xxxxX.digFilters;
public class Neutral {
Double[] input;
String filterName = new String();
public Neutral()
{
super();
SetFilterName();
}
void SetFilterName()
{
filterName = "oFilt :";
}
public String GetFilterName()
{
return filterName;
}
public void SetInput(Double ... input)
{
this.input = input;
}
public double RunFilter()
{
return input[input.length/2];
}
}
Java:
package xxxxX.digFilters;
import java.util.*;
public class Average {
void SetFilterName()
{
filterName = "Mwert :";
}
public double RunFilter()
{
double res = 0.0;
for (double val: input)
res += val;
res /= 5.0;
return res;
}
}
Java:
package xxxxX.digFilters;
public class Limiter {
double maxVal = 0;
//Die Klasse Limiter soll immer mit der Übergabe des Grenzwertes
//instanziert werden. Aus diesem Grund muss der Standardkonstruktor
//nach außen unsichtbar gemacht werden: Er wird überschrieben und
//erhält die Sichtbarkeit private
private Limiter() {
super();
}
public Limiter(double maxVal)
{
this();
this.maxVal = maxVal;
}
void RunFilter(Double... values) {
if (maxVal != 0) {
int ll = values.length;
while (--ll >= 0) {
if (values[ll].doubleValue() > maxVal) {
values[ll] = maxVal;
}
else if (values[ll].doubleValue() < -maxVal) {
values[ll] = -maxVal;
}
else {
//Begrenzung nicht erforderlich
}
}
}
else {
//keine Begrenzung
}
}
}
Nun habe ich ein Interface FIRfilter erstellt und eine Klasse Velocity die von der Klasse Limiter erbt und das Interface FIRfilter implementiert (keine Ahnung ob das so korrekt gesagt wurde
Java:
package xxxxX.digFilters;
public interface FIRfilter {
int filterlength=5;
public String GetFilterName();
public void SetInput(Double ... input);
public double RunFilter();
}
Java:
package xxxxX.digFilters;
public class Velocity extends Limiter implements FIRfilter{
Double[] data;
String name= new String();
public Velocity()
{
}
public String GetFilterName()
{
}
public void SetInput(Double ... input)
{
}
public double RunFilter()
{
}
}
Da nun die Klasse Average von der Klasse Neutral erbt muss ich bei der Klasse Average auch "extends Neutral" einfügen. Und bei der Klasse Neutral muss ich dann "implements FIRfilter" einsetzen oder?
Ich habe mich dumm und dämlich "gegooglet". Klassen und Interfaces bringen mich an meine Grenzen. Ich würde mich sehr freuen wenn ihr mir da helfen würdet