Skip to main content

Der Java Datentyp boolean im Interview

Nein, ich bin nicht verrückt.

Aber…

Neulich traf ich zufällig den Java Datentyp boolean. 🙂
Er erklärte sich bereit, mir ein Interview zu geben.

In diesem Interview geht es um die Werte, welcher dieser Wertetyp annehmen kann.
Und in diesem Zusammenhang geht es auch um Logik.

Also lassen wir uns doch die Logik vom direkten Fachmann erklären.

Ich:
Hallo sehr geehrter Datentyp Boolean.
Sie sind ein logischer Datentyp.
Können sie uns erklären, was mit Logik gemeint ist?

Java Datentyp Boolean:
Hallo Mathias,
Die Logik ist ein Teilgebiet der Mathematik.
In der Logik unterscheidet man wiederum zwei Teilgebiete.
Die Aussagenlogik und die Prädikatenlogik.
Mich persönlich interessiert die Aussagenlogik.

Ich:
Und was versteht man unter der Aussagenlogik?

Java Datentyp Boolean:
Der Name sagt es schon.
Es geht um Aussagen.
Eine Aussage ist entweder richtig oder falsch.
Wenn man zum Beispiel sagt: Berlin ist Hauptstadt von Deutschland.
Dann ist diese Aussage richtig.
Oder wie ich es sagen würde. Diese Aussage liefert den Wahrheitswert true.

Ich:
Okay, und wenn die Aussage nicht richtig wäre?

Java Datentyp boolean:
Dann würde diese Aussage den Wert false liefern.

Ich:
Und welche Konsequenzen hat das für die Java Programmierung?

Java Datentyp boolean:
Das bedeutet, dass ich in einem Java Programm entweder den Wert false oder true annehme.

Ich:
Und was passiert, wenn man zwei Aussagen kombiniert?

Java Datentyp boolean:
Lassen sie mich dies am Beispiel zeigen.
Nehmen wir zwei Aussagen:
Berlin ist Hauptstadt
Hamburg hat einen Hafen
Beide Aussagen sind für sich genommen richtig.

Ich:
Ja und jetzt.

Java Datentyp boolean:
Jetzt verknüpfe ich beide durch ein logisches Und.
In der Logik nennt man so etwas Konjunktion.

Ich:
Also kann ich sagen:
Berlin ist Hauptstadt und Hamburg hat einen Hafen.
Und dies wäre wieder eine komplett neue Aussage, welcher entweder false oder true ist?

Java Datentyp boolean:
Ja genau.
Dieser neue Ausdruck wäre jetzt wieder true.

Ich:
Ja, und wieso?

Java Datentyp boolean:
Berlin ist Hauptstadt und Hamburg hat einen Hafen.
Die ganze Aussage ist richtig, weil die einzelnen Teile oder Terme richtig sind.

Ich:
Also kann man doch sagen:
Ich nehme zwei Aussagen, welche true oder wahr sind.
Verbinde diese durch ein „und“.
Und die neue Gesamtaussage ist wieder true.

Java Datentyp boolean:
Genauso ist es.

Ich:
Oh super.
Was ist aber, wenn eine Aussage falsch wäre.

Java Datentyp boolean:
Dann wäre die Gesamtaussage falsch.
Berlin ist Hauptstadt und Hamburg hat keinen Hafen.
Der erste Term ist zwar wahr.
Der zweite ist aber falsch.
Und somit kann die Gesamtaussage nicht wahr sein.
Also entspricht dies dem Wahrheitswert false.

Ich:
Und wenn beide Aussagen falsch wären?

Java Datentyp boolean:
Berlin ist nicht Hauptstadt und Hamburg hat keinen Hafen.
Na dann ist die Aussage ja komplett nicht wahr.
Somit würde ich ebenfalls den Wert false liefern.

Ich:
Okay, und wie setze ich dies in Java um.

Java Datentyp boolean:
Lassen sich mich die einzelnen Aussagenkombination in einer Tabelle festhalten.
In der Aussagenlogik fertigt man nämlich Wahrheitstabellen an.

Boolean a Boolean b a && b
true true true
true false false
false true false
false false false

Java Datentyp boolean:
In der Tabelle sehen sie schon, wie man das „logische Und“ in der Java Programmierung darstellt.
Und zwar so: &&.

Ich:
Okay, okay und wie schreibe ich dann den Code?

Java Datentyp boolean:
Man deklariert zwei Variablen vom Datentyp boolean und weist diesen beiden Variablen Wahrheitswerte zu.
Und dann kann man diese beiden Variablen verknüpfen.
Am besten sie lassen sich dann den neuen Wahrheitswert über die Konsole ausgeben.


public class LogikProgramm {


public static void main(String[] args) {
boolean boolEins=false;
boolean boolZwei=false;
System.out.println(boolEins && boolZwei);
}
}

Ich:
Und was ist eigentlich, wenn ich drei oder noch mehr Aussagen kombiniere.

Java Datentyp boolean:
Es kommt zu den gleichen Ergebnissen.
Bei einer „Und-Verknüpfung“ muss jede Teilaussage true sein, damit die Gesamtausgabe auch true ist.
Aber, wenn sie mir nicht glauben- Versuchen sie es doch aus.

Ich:
Nein, nein.
Ich glaube Ihnen.
Aber, ich weiß aus zuverlässiger Quelle, dass man Wahrheitswerte auch umkehren kann.

Java Datentyp boolean:
Ja das geht.
In der Logik, als auch in Java können sie Wahrheitswerte umkehren.

Java Datentyp boolean:
In der Logik spricht man von Negieren.

Ich:
Was bedeutet das?

Java Datentyp boolean:
Ein Wert, welcher wahr ist, wird durch Negieren falsch.
Ein Wert, welcher falsch ist, wird durch Negieren wahr.

Ich:
Interessant.
Und wahrscheinlich kann man negierte Werte auch über ein „Und“ verknüpfen.

Java Datentyp boolean:
Ja klar.
Und so sieht dann die Wahrheitstabelle aus.

Boolean a Boolean !a a && !a
true false false
false true false

Ich:
Und im Code?

Java Datentyp boolean:
Sie erkennen das Ausrufezeichen?

Ich:
Okay ich verstehe.

Java Datentyp boolean:
Ich dachte schon die Frage wäre ernst gemeint?
Aber hier ist der Code:


public class LogikProgramm {


public static void main(String[] args) {
boolean boolEins=true;
boolean boolZwei=false;
System.out.println(boolEins && !boolEins);
}
}

Ich:
Lassen sie uns über ein „Oder“ sprechen.

Java Datentyp boolean:
Ich dachte schon, sie fragen nie.
Dies nennt man in der Logik Disjunktion.
Am Beispiel:
Berlin ist Hauptstadt oder Hamburg hat ein Hafen.

Ich:
Beide Aussagen sind richtig.
Dadurch ist auch die komplette Aussage wahr?

Java Datentyp boolean:
Genau.
Wenn eine Teilaussage wahr ist, ist die Gesamtaussage richtig.
Somit wäre:
Berlin ist Hauptstadt oder Hamburg hat keinen Hafen.
Ebenfalls wahr.

Ich:
Und jetzt ihre Wahrheitstabelle.

Datentyp boolean:
Da ist sie.

Boolean a Boolean b a || b
true false true
false true true
true true true
false false false

Java Datentyp boolean:
Natürlich können auch negierte Werte durch eine Disjunktion verknüpft werden.

Boolean a Boolean !a a || !a
true false true
false true true

Ich:
Und im Code würde dies so umgesetzt werden?


public class LogikProgramm {


public static void main(String[] args) {
boolean boolEins=false;
boolean boolZwei=false;
System.out.println(boolEins || !boolEins);
}
}

Java Datentyp boolean:
Richtig.
Ich merke, so langsam ziehen sie die richtigen Schlüsse.

Ich:
Okay.
Dann lassen sie uns über die vierte logische Ausdruckskombination sprechen.

Java Datentyp boolean:
Sehr gerne.
Diese nennt sich Xor.
Und Xor bedeutet exklusives Oder.

Ich:
Exklusives Oder?
Geht es genauer?

Java Datentyp boolean:
Na sicher.
Frei übersetzt spricht man vom „entweder oder“.
In der wissenschaftlichen Welt der Aussagenlogik entspricht dies der Kontravalenz.

Ich:
Können sie es am Beispiel zeigen?

Java Datentyp boolean:
Hamburg hat einen Hafen.
Berlin ist Hauptstadt.
Kontravalenz liefert immer dann den Wert wahr, wenn entweder das eine oder das andere wahr ist.

Ich:
Okay.
Und das bedeutet:
Beide Wahrheitswerte müssen sich unterscheiden, um für den Gesamtausdruck den Wert true (wahr) zu liefern?

Java Datentyp boolean:
Genau.
Hamburg hat einen Hafen oder Berlin ist Hauptstadt.
Dies wäre im normalen Oder-Kontext true.
Beim Xor wäre es false. Da nur eine Aussage war sein kann.

Java Datentyp boolean:
Ein besseres Beispiel wäre.
Sie ist eine Blondine oder sie hat schwarze Haare.
Hier können beide Aussage nicht zuasammen wahr sein.
Es geht nur entweder oder.
Und so sieht jetzt die Wahrheitstabelle aus.

Boolean a Boolean b a ^ b
true true false
false true true
true false true
false false false

Ich:
Und dieses Xor oder „Exklusives Oder“ wird in Java durch ein „^“ ausgedrückt?

Java Datentyp boolean:
🙂

Ich:
Und dies wäre der Code?


public class LogikProgramm {


public static void main(String[] args) {
boolean boolEins=true;
boolean boolZwei=false;
System.out.println(boolEins ^ boolEins);
}
}

Java Datentyp boolean:
Ja, klar.

Ich:
Na super.
Dann haben wir alles besprochen?

Java Datentyp boolean:
Ja das haben wir.

Ich:
Ich bedanke mich bei Ihnen, dass sie sich für mich Zeit genommen haben.

Java Datentyp boolean:
Kein Problem.
Es hat auch mir Spass gemacht.

Ich:
Eine Frage habe ich noch.
Jetzt haben wir so viel über false und true gesprochen.
Welchen default Wert haben sie eigentlich?

Java Datentyp boolean:
Meinen Default Wert wollen sie wissen?
Meinen sie nicht, das geht zu weit?

Ich:
Nein.
Ich möchte nur wissen.
Welchen Wert haben sie, wenn eine Variable zwar deklariert wurde.
Aber dieser Variable wurde kein Wert zugewiesen.

Java Datentyp boolean:
Probieren sie es aus.
Erzeugen sie eine zweite Klasse mit einer Instanzvariablen vom Datentyp boolean.
Und lassen sich den Wert in der main Methode ausgeben.

Die Klasse Logik

public class Logik {
boolean boolEins;
}


Die Klasse LogikProgramm
public class LogikProgramm {


public static void main(String[] args) {
Logik bool =new Logik();
System.out.println(bool.boolEins);
}
}

Java Datentyp boolean:
Der Datentyp wäre false.
Mein Default Wert ist false.

Ich:
Okay jetzt weiß ich wirklich alles.
Vielen Dank, bis bald.

Java Datentyp boolean:
Bis bald.

So lieber Leser.
Falls Du tiefer in das Thema Logik einsteigen möchtest oder musst, empfehle ich dir das Buch „Logik für Informatiker“ von Uwe Schöning.

In diesem Buch wird das Thema sehr anschaulich und mit guten Beispielen dargestellt.
Außerdem findest du Übungen, um dein Wissen auch wirklich anzuwenden.

Hat dir dieser Artikel gefallen?
Hast du Fragen oder Anmerkungen- Dann schreib mir unten ein Kommentar zum Artikel.


Ähnliche Beiträge

Eine Java Konsoleneingabe machst du über den Scanner

Es wird Zeit für die erste Java Konsoleneingabe. Und diese Eingaben machst du über den Java Scanner. Was ist das? Der Scanner ist eine vorgefertigte Java Klasse, welche Java mit seiner API anbietet. Das heißt du musst nichts selbst erschaffen. Du musst nur wissen, wie du darauf zugreifst. Erst einmal musst du einen Scanner anlegen. […]

Java Übung 31: Speichere deine Würfe im Array

Java Übung Array Würfelspiel

In dieser Java Übung soll ein Würfelspiel simuliert werden. Lege eine Klasse namens, Würfelspiel an. Diese Klasse enthält eine statische Methode, namens würfeln(). Diese Methode erwartet einen Parameter vom Datentyp Integer, namens „anzahlWuerfe“. Diese Variable/Parameter repräsentiert die Anzahl der Würfe. Nachdem der Methode die Anzahl der Würfe übergeben wurde, soll die Methode Zufallszahlen zwischen 1 […]

Nutze die Fernbedienung für deine Java Objekte

Auf Java Objekte greifst du mit einer Art Fernsteuerung zu. Diese bezeichnet man als Referenz oder als Verweis. Und diese Referenzvariablen möchte ich dir jetzt einmal vorstellen. Doch bevor wir loslegen, lass mich noch ein paar Dinge loswerden. 🙂 Ich habe es ja schon einmal in einem früheren Beitrag erwähnt. Java unterscheidet zwischen primitiven und […]

Ohne Abstraktion ergibt Java Polymorphie wenig Sinn

Java Polymorphie Abstraktionsprinzip

Kennst du den Film Matrix? Denn kennst du vielleicht auch die Botschaft, welche der Protagonist am Anfang des Filmes erhält. „Folge dem weißen Kaninchen.“ Und so ähnlich ist es jetzt auch in diesem Beitrag. „Wir dringen immer tiefer in den Kaninchenbau ein.“ 🙂 Ganz so wie im Film wird es nicht. Aber bevor wir mit […]

Die mathematischen Grundlagen des Dezimalsystems für Java Programmierer

Java Dezimalsystem Mathematik Programmierer

Bei der Java Programmierung benötigst du Kenntnisse über das Dezimalsystem. Allein schon für die technische Umsetzung beim Runden einer Zahl. Oder du möchtest den Kehrwert bzw. den Umkehrwert einer Zahl im Programm bestimmen lassen. Aber auch für das Herausfinden des Stellenwertes – also wieviel Stellen hat eine Zahl – benötigst du das Grundwissen des Dezimalsystems. […]

So kannst du in Java Und Verknüpfung anlegen und auswerten

Java Und

In Java stehen dir eine Menge Operatoren zur Verfügung. Einer dieser Operatoren ist der Und-Operator. Dies ist ein logischer Operator, da dieser sogenannte Wahrheitswerte mit einander verknüpft. Also…. Was erwartet dich in diesem Beitrag? Zuerst möchte ich dir die Aussagenlogik hinter dem Und-Operator zeigen. Also wann sind Aussagen wahr und wann sind diese falsch. Dann […]

Der bedeutende Unterschied zwischen Klassenvariablen und Instanzvariablen

Java Klassenvariablen

Bei der Java Programmierung unterscheidet man drei Arten von Variablen. Als erste Gruppe sind die lokalen Variablen zu nennen. Auf diese gehe ich in einem separaten Artikel ein. Mich interessieren die zwei anderen Variablentypen. Zum einen existieren Klassenvariablen. Und dann sind da noch die Instanzvariablen. Wo liegt der Unterschied? Instanzvariablen stehen einem Objekt zur Verfügung. […]

Der Aufbau von Java Klassen

Java Klassen Aufbau

Jedes Java Programm besteht aus Java Klassen. Doch wie sind diese aufgebaut? Wie setzt sich die Struktur zusammen? Wo befinden sich Klassen hierarchisch? Was kommt in die Klassen rein und wie wird es integriert? Das sind die Fragen, welche ich in diesem Artikel beantworten werde. Doch bevor wir bei den Klassen ansetzen, müssen wir eine […]

So verwendest du Inkrement und Dekrement Operatoren in deinen Java Programmen

Java Operatoren

In diesem Beitrag geht es um Java Operatoren. Ich möchte dir gern zwei neue Operatoren vorstellen. Diese nennen sich Inkrement und Dekrement. Ja was heißt das? Inkrementieren bedeutet eine schrittweise Erhöhung einer Zahl. Und dementsprechend bedeutet Dekrementieren: Die schrittweise Verminderung einer Zahl. Wozu brauchst du das? Stell dir vor. Du bekommst eine Liste mit Namen […]

Hier sind ein paar richtig nette Features, die dich beim Java lernen unterstützen

Java lernen Eclipse

Was ist das Wichtigste beim Einstieg in ein neues Wissensgebiet? Nein, kein gutes Sachbuch oder ein besonders guter Lehrer. Es ist Spaß. Beim Java Lernen brauchst du Spaß. Es gibt Lehrer, welche ihren Stoff so vermitteln, dass Lernen Spaß bereitet. Aber die Grundvoraussetzung ist und bleibt der Spaß. Und nichts ist so spaßhemmend wie Langeweile […]