Hallo Leute,
kann mir einer anhand meinen zwei Codings erklären wo der unterschied zwischen Interface und Interface_Referenzen liegt?
Ich weiß z.B. dass IF_Ref nur Objekte Referenzieren kann...
Interface
Interface mit Referenzen
Bei den Interface_Referenzen brauche ich doch einen Kontruktor oder? Über Verbesserungen und Vorschläge bin sehr dankbar!!!
kann mir einer anhand meinen zwei Codings erklären wo der unterschied zwischen Interface und Interface_Referenzen liegt?
Ich weiß z.B. dass IF_Ref nur Objekte Referenzieren kann...
Interface
Java:
public interface IF_Vector {
double skalarprodukt (double [] vec1, double [] vec2);
double [] kreuzprodukt (double [] vec1, double [] vec2);
}
Java:
public class Berechne implements IF_Vector {
public double skalarprodukt (double [] vec1, double [] vec2){
double erg = 0;
for (int i=0; i<vec1.length; i++){
erg = vec1[i] * vec2[i] + erg;
}
return erg;
}
public double [] kreuzprodukt (double [] vec1, double [] vec2){
double[] erg = new double [3];
erg[0] = vec1[1] * vec2[2] - vec1[2] * vec2[1];
erg[1] = vec1[2] * vec2[0] - vec1[0] * vec2[2];
erg[2] = vec1[0] * vec2[1] - vec1[1] * vec2[0];
for (int i=0; i<erg.length; i++){
System.out.println(erg[i]);
}
return erg;
}
public static void main(String args[]){
double [] vec1 = {1.0, 0.0, 3.2};
double [] vec2 = {2.1, 1.4, 1.9};
Berechne B1 = new Berechne();
double erg = B1.skalarprodukt(vec1, vec2);
System.out.println(erg);
double [] ergebnis = B1.kreuzprodukt(vec1, vec2);
System.out.println(ergebnis);
}
}
Interface mit Referenzen
Java:
public interface IF_Vector {
double skalarprodukt (IF_Vector b);
double [] kreuzprodukt (IF_Vector b);
double [] getComponents();
}
Java:
public class Berechne implements IF_Vector {
double [] vec1 = new double [3];
public Berechne (double[] neuervec){
this.vec1=neuervec;
}
public double [] getComponents(){
return vec1;
}
public double skalarprodukt (IF_Vector b){
double [] vec2 = b.getComponents();
double erg = 0;
for (int i=0; i<vec1.length; i++){
erg = vec1[i] * vec2[i] + erg;
}
return erg;
}
public double [] kreuzprodukt (IF_Vector b){
double [] vec2 = b.getComponents();
double [] erg = new double [3]; //Rückgabewert
erg[0] = vec1[1] * vec2[2] - vec1[2] * vec2[1];
erg[1] = vec1[2] * vec2[0] - vec1[0] * vec2[2];
erg[2] = vec1[0] * vec2[1] - vec1[1] * vec2[0];
return erg;
}
public static void main(String [] args){
double [] a = {1.0, 0.0, 3.2};
double [] b = {2.1, 1.4, 1.9};
IF_Vector vec1 = new Berechne(a);
IF_Vector vec2 = new Berechne(b);
//vec1 ist die Referenz Variable, die ist vom Typ IF_Vector und das Objekt was erzeugt wurde ist vom Typ Berechne! <-- stimmt das???????
double skalar = vec1.skalarprodukt(vec2);
System.out.println("Skalarprodukt: "+skalar);
double [] kreuz = vec1.kreuzprodukt(vec2);
for (int i=0; i<kreuz.length; i++){
System.out.println("Kreuzprodukt: "+kreuz[i]);
}
}
}
Bei den Interface_Referenzen brauche ich doch einen Kontruktor oder? Über Verbesserungen und Vorschläge bin sehr dankbar!!!
Zuletzt bearbeitet: