Guten Tag,
das ist meine Aufgabe: http://lmt.fh-swf.de/uploads/media/Aufgabenblatt06_01.pdf
Ich schrieb die Klasse Menge:
Die Klasse MengeTest:
Und die Klasse Services:
Habe alle Fehler soweit behoben, bis auf die Zeile 30, 42 und 47 in Menge, da steht:
Und als Fehler steht da:
und
Ich komme nicht mehr weiter, bitte um Hilfe
das ist meine Aufgabe: http://lmt.fh-swf.de/uploads/media/Aufgabenblatt06_01.pdf
Ich schrieb die Klasse Menge:
Java:
package Versuch2;
//Implementierung des Interfaces in einer Klasse
//nichtabstrakte Klasse implementiert Interface
public class Menge implements Services{
//Elemente von Typ int, Klammer wegen Array
private int[] element;
//Instanzattribut, weil Instanz muss in Konstruktor erzeugt werden
private int dimension;
//Zähler für Mengenelemente
private int anzahl;
//Erzeugung Objekt in Konstruktor
Menge(int dimension){
this.dimension= dimension; //Zuweisen
element=new int[dimension];//
anzahl=0; //Angabe Anzahl als Laufvariable
}
//Erweiterung der Klasse siehe Instanzmethoden für Operationen mit Mengen
//Die Methoden der Schnittstelle implementieren
@Override
public int numberOfElements() {
// TODO Auto-generated method stub
return anzahl;
}
@Override
public boolean isElement(int zahl) {
// TODO Auto-generated method stub
int index=0;
for(int i=0; i<dimension;i++){
if (element[i]==zahl){
index=i;
break;
}
else{
index=-1;
}
}
return false;
}
@Override
public boolean addElement(int zahl) {
if((this.isElement(zahl))!=null){
return false;
}
else {
element[anzahl]=zahl;
anzahl++;
return true;
}
}
private int isElement(boolean zahl) {
// TODO Auto-generated method stub
return 0;
}
//Die Methode der Klasse Object wird überschrieben
public String toString(){
String s="{";
for(int i=0;i<this.numberOfElements()-1;i++)
s=s.concat((new Integer(element[i])).toString())+",";
s=s.concat((new Integer(element[numberOfElements()-1])).toString())+"}";
return s;
}
//Instanzmethoden für Operationen mit Mengen
public Menge bildeVereinigungMit(Menge andereMenge){
Menge menge=new Menge(this.numberOfElements()+
andereMenge.numberOfElements());
//Elemente der 1.Menge
for(int i=0; i<this.numberOfElements();i++)
menge.addElement(this.element[i]);
//Elemente der 2.Menge
for(int i=0; i<menge.numberOfElements();i++)
menge.addElement(menge.element[i]);
return menge;
}
public Menge bildeDurchschnittMit(Menge andereMenge){
Menge menge=new Menge(this.numberOfElements());
//Ist ein Element aus der 1.Menge auch in der 2. enthalten,
//wird dieses der ersten Menge hinzugefügt
for(int i=0; i<this.numberOfElements();i++){
if(andereMenge.isElement(this.element[i]=0)){
menge.addElement(this.element[i]);
}
}
return menge;
}
}
Die Klasse MengeTest:
Java:
package Versuch2;
public class MengeTest {
public static void main(String args[]){
Menge m1=new Menge(6);
for(int i=1;i<7;i++)
m1.addElement(i);
System.out.println(m1.toString());
Menge m2=new Menge(5);
for(int i=3;i<8;i++)
m2.addElement(i);
System.out.println(m2.toString());
Menge m3=m1.bildeVereinigungMit(m2);
System.out.println(m3.toString());
Menge m4=m1.bildeDurchschnittMit(m2);
System.out.println(m4.toString());
}
}
Und die Klasse Services:
Java:
package Versuch2;
//Interface-Definition
public interface Services {
public int numberOfElements();
public boolean isElement(int zahl);
public boolean addElement(int zahl);
}
Habe alle Fehler soweit behoben, bis auf die Zeile 30, 42 und 47 in Menge, da steht:
Java:
in Zeile 30:
public boolean isElement(int zahl) {
Java:
in Zeile 42:
return index;
Java:
in Zeile 47:
if((this.isElement(zahl))=0){
Und als Fehler steht da:
Java:
the return type is uncompatible with services.iselement
Java:
cannot convert from int to boolean
und
Java:
the operator != is undefined for the argument type boolean, int
Ich komme nicht mehr weiter, bitte um Hilfe
Zuletzt bearbeitet von einem Moderator: