Schaltung realisieren

Mein Problem ist folgendes:
Code:
public class NANDGlied extends Schaltglied {  // NANDGleid erbt von Schaltglied
public NANDGlied(String Name) {
super(Name);
Ausgang =true;
}
public void aktualisiereAusgang() {
boolean e1 =false;
boolean e2 = false;
if(Eingang1 !=null)
e1 = Eingang1.Ausgang;
if(Eingang2 !=null)
e2 = Eingang2.Ausgang;
Ausgang = ! (e1 && e2);
}
}
Wir sollen den Code in Worten erklären. Ich weiß nicht ganz, wie ich das machen soll, da ich nicht alles verstehe.

Hier noch die Klasse Schaltglied
Code:
public class Schaltglied {

private String Name;

protected boolean Ausgang;

protected Schaltglied Eingang1;

protected Schaltglied Eingang2;

private SchaltgliederListe verbundenMit;
 

Robat

Top Contributor
Dann fang doch einfach mal an den Teil zu erklären, den du verstehst und stell konkrete Fragen zu den Teilen die du nicht verstehst
 
Das NANDGlied erbt erstmal die Attribute der Klasse Schaltglied, da NANDGlieder auch Schaltglieder in abgeänderter Form sind.
Mit super() kann in einem Konstruktor einer Unterklasse ein Konstruktor der Oberklasse aufgerufen werden. Ausgang wird zu Beginn auf boolean = true gesetzt.
In der Methode aktualisiereAusgang() werden nun die beiden Eingänge der Schalter auf boolean = false gesetzt. Bis hier hin bin ich gekommen.

Und noch zusätzlich als Anhang zur Frage:
Ein NAND-Glied hat am Ausgang den Wert false , wenn beide Eingänge den Wert true haben. Andernfalls hat der Ausgang den Wert true. Ist ein Eingang unbeschaltet, so hat dieser den Wert false.
 

MoxxiManagarm

Top Contributor
Ist dir generell klar, was ein NAND ist?
https://de.wikipedia.org/wiki/NAND-Gatter

Du hast 2 Eingangsbits und verknüpfst sie zu einem Ausgangsbit. Das Eingangsbit kann das Ausgangsbit eines anderen Gatters sein. In deinem Fall kennt ein Gatter seine Vorgänger.

Java:
public class NANDGlied extends Schaltglied { 
    public NANDGlied(String Name) {
        // Ruft den Konstruktor von Schaltglied auf
        super(Name);
       
        // initialisiere "high" an Ausgang (geerbtes Feld von Schaltglied)
        Ausgang = true;
    }
   
    public void aktualisiereAusgang() {
        // Initialisiere "low" an den Eingängen, kein Strom, wie bei nicht vorhandenen Eingang
        boolean e1 = false; 
        boolean e2 = false;
       
        // high oder low an den Eingängen? Schaue dazu auf die Vorgängergatter. Diese betrachten ggf. auch Vorgängergatter
        // wird nur betrachtet falls tatsächlich Eingänge vorhanden sind, sonst bleibt es bei "low"
        if(Eingang1 != null) e1 = Eingang1.Ausgang; 
        if(Eingang2 != null) e2 = Eingang2.Ausgang;
       
        // die eigentliche NAND ("Not And") Verknüpfung
        Ausgang = ! (e1 && e2);
    }
}


Aber - und das ist meine ganz persönliche Meinung - dieser Code ist nicht vorbildlich. Warum?
# Capital Named Variables: Eingang --> eingang, Ausgang --> ausgang - Java Namens Konvention
# Feste Anzahl von Eingängen vorgegeben durch Schaltglied: Not-Gatter hat nur einen. Außerdem müsste ein Nicht-Gatter Eingang (Einfaches Bit high/low) hier theoretisch auch ein Schaltglied sein und dieses Bit hat eigentlich keinen Eingang. Die Eingänge für diese Typen dann zu ignorieren stellt mir die Rückenhaare auf.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Spielerbewegungen realisieren Java Basics - Anfänger-Themen 2
A MouseMotionListener - wie Mausverfolgung und Neuzeichnen realisieren? Java Basics - Anfänger-Themen 12
H Frage um Eingbeaufforderung zu realisieren Java Basics - Anfänger-Themen 4
A Wie kann ich folgendes Projekt realisieren? Java Basics - Anfänger-Themen 4
L Methoden Methode mit drei Rückgabewerten realisieren Java Basics - Anfänger-Themen 3
J Frage Antwort Spiel - Wie Zeitcountdown realisieren? Java Basics - Anfänger-Themen 2
L Liste als Array realisieren Java Basics - Anfänger-Themen 23
J Mustererkennung realisieren Java Basics - Anfänger-Themen 10
Y chat programm im internet realisieren Java Basics - Anfänger-Themen 5
Z Wie repaint() bei Uhr realisieren? Java Basics - Anfänger-Themen 12
T Kleines Spiel realisieren - wie? Java Basics - Anfänger-Themen 6
T 1:1 Beziehungen realisieren ? Java Basics - Anfänger-Themen 13
S Ausgabe realisieren Java Basics - Anfänger-Themen 2
S Grössere MenuBars realisieren Java Basics - Anfänger-Themen 7
D Java Programm mit Internetzugriff realisieren Java Basics - Anfänger-Themen 8
ARadauer timeout realisieren Java Basics - Anfänger-Themen 5
D Logging sätmlicher Vorgänge, wie am besten realisieren? Java Basics - Anfänger-Themen 6
G Physikalisches Problem realisieren Java Basics - Anfänger-Themen 11
G isEmpty selbst realisieren Java Basics - Anfänger-Themen 47
U Texteditor mit methoden realisieren Java Basics - Anfänger-Themen 13
A Beziehung 1-n in Java realisieren Java Basics - Anfänger-Themen 17
S Zeilenumbrüche realisieren Java Basics - Anfänger-Themen 6
I SaveFile Dialog - wie realisieren ? Java Basics - Anfänger-Themen 4
L Timer Swing realisieren Java Basics - Anfänger-Themen 4
P :shock: teilweises wurzelziehen realisieren Java Basics - Anfänger-Themen 9
R Zeitaufwand für Suchmaschine mit Lucene realisieren Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben