Guten Abend 
Ich bin ein 20 jähriger Informatik Student der da ein kleines Problem bei einer Aufgabe hat ^^
Also ich fang mal direkt an zu beschreiben:
Ich soll eine eine Abstracte Klasse netz erstellen, mit bestimmten methoden, davon eine klasse resistor(wiederstand) ableiten, mit nem versteckten wiederstandswert und der methode ohm() (gibt wiederstandswert zurück).
Dazu kommen 2 Klassen, parallel und serial, die ein netz von wiederständen berechnen sollen.
Hier ist ein Netz dann eine ArrayList von Resistoren, die an den konstruktor von serial/parallel übergeben wird.
Ich poste mal Codeausschnitte um mein Problem zu beschreiben:
Resistorklasse
Serial Klasse (die parallel ist fast gleich, nur die berechnung des wiederstandes ist halt anders
Modellierung der Schaltung (Anhang)
Sind noch ein paar zwischensachen mit drin, weil man nach der Aufgabe am Anfang nur 2 eingehende Resistoren pro Serial/Parallel Netz haben sollte, und es dann auf mehrere erweitern sollte.
Wie man sieht muss ich bei der Modellierung mit HilfsObjekten arbeiten, was auch das problem darstellt. die methode countresistors() gibt 3 aus, da ich ja alles über hilfsobjekte laufen lassen musste.
Mein Problem liegt hier bei ArrayList<resistor>.
Gibt es eine möglichkeit, den typ offen zu lassen? so dass die liste resistor/serial/parallel objekte gleichzeitig enthalten kann?
so könnte ich dann eine array list von:
r6
s1 = serial(r4,r5)
s3 = serial(r2,p1) p1 = parallel(r1,r3)
machen und darüber ein parallel object erstellen, was auch dann die Resistoren richtig zählen würde.
ich hoffe ihr versteht wie ich es meine ^^

Ich bin ein 20 jähriger Informatik Student der da ein kleines Problem bei einer Aufgabe hat ^^
Also ich fang mal direkt an zu beschreiben:
Ich soll eine eine Abstracte Klasse netz erstellen, mit bestimmten methoden, davon eine klasse resistor(wiederstand) ableiten, mit nem versteckten wiederstandswert und der methode ohm() (gibt wiederstandswert zurück).
Dazu kommen 2 Klassen, parallel und serial, die ein netz von wiederständen berechnen sollen.
Hier ist ein Netz dann eine ArrayList von Resistoren, die an den konstruktor von serial/parallel übergeben wird.
Ich poste mal Codeausschnitte um mein Problem zu beschreiben:
Resistorklasse
Code:
package resistor;
public class resistor extends netz{
private double wiederstand;
private int anzahl;
resistor(double wiederstand)
{
this.wiederstand = wiederstand;
this.anzahl = 1;
}
public double ohm()
{
return this.wiederstand;
}
public int countresistors()
{
return this.anzahl;
}
}
Serial Klasse (die parallel ist fast gleich, nur die berechnung des wiederstandes ist halt anders
Code:
package resistor;
import java.util.ArrayList;
public class serial {
private resistor netz1;
private resistor netz2;
private int anzahl;
private double wiederstand;
private ArrayList<resistor> netze = new ArrayList<resistor>();
public serial(ArrayList<resistor> netze)
{
for(int i=0; i<netze.size();i++)
{
this.netze.add(netze.get(i));
}
}
public serial(resistor r1, resistor r2)
{
this.netz1=r1;
this.netz2=r2;
}
public double ohm()
{
this.wiederstand = 0;
if(this.netz1!=null&&this.netz2!=null)
{
this.wiederstand = this.netz1.ohm() + this.netz2.ohm();
return this.wiederstand;
}
else
{
for(int i=0;i<netze.size();i++)
{
this.wiederstand+=this.netze.get(i).ohm();
}
return this.wiederstand;
}
}
public int countresistors()
{
this.anzahl=0;
if(this.netz1!=null&&this.netz2!=null)
{
this.anzahl=netz1.countresistors() + netz2.countresistors();
return this.anzahl;
}
else
{
for(int i=0;i<netze.size();i++)
{
this.anzahl+=netze.get(i).countresistors();
}
return this.anzahl;
}
}
}
Modellierung der Schaltung (Anhang)
Code:
package resistor;
import java.util.ArrayList;
public class modellierung {
public static void main(String[] args)
{
resistor r1=new resistor(100);
resistor r2=new resistor(200);
resistor r3=new resistor(300);
resistor r4=new resistor(400);
resistor r5=new resistor(500);
resistor r6=new resistor(600);
ArrayList<resistor> a1 = new ArrayList<resistor>();
a1.add(r1);
a1.add(r3);
parallel p1 = new parallel(a1);
System.out.println(p1.ohm());
resistor h1 = new resistor(p1.ohm());
ArrayList<resistor> a2 = new ArrayList<resistor>();
a2.add(h1);
a2.add(r2);
serial s1 = new serial(a2);
System.out.println(s1.ohm());
resistor h2 = new resistor(s1.ohm());
ArrayList<resistor> a3 = new ArrayList<resistor>();
a3.add(r4);
a3.add(r5);
serial s2 = new serial(a3);
System.out.println(s2.ohm());
resistor h3 = new resistor(s2.ohm());
ArrayList<resistor> a4 = new ArrayList<resistor>();
a4.add(h2);
a4.add(r6);
a4.add(h3);
parallel p2 = new parallel(a4);
System.out.println(p2.ohm());
System.out.println(p2.countresistors());
}
}
Sind noch ein paar zwischensachen mit drin, weil man nach der Aufgabe am Anfang nur 2 eingehende Resistoren pro Serial/Parallel Netz haben sollte, und es dann auf mehrere erweitern sollte.
Wie man sieht muss ich bei der Modellierung mit HilfsObjekten arbeiten, was auch das problem darstellt. die methode countresistors() gibt 3 aus, da ich ja alles über hilfsobjekte laufen lassen musste.
Mein Problem liegt hier bei ArrayList<resistor>.
Gibt es eine möglichkeit, den typ offen zu lassen? so dass die liste resistor/serial/parallel objekte gleichzeitig enthalten kann?
so könnte ich dann eine array list von:
r6
s1 = serial(r4,r5)
s3 = serial(r2,p1) p1 = parallel(r1,r3)
machen und darüber ein parallel object erstellen, was auch dann die Resistoren richtig zählen würde.
ich hoffe ihr versteht wie ich es meine ^^
Zuletzt bearbeitet: