Methoden Boolean-Methode

Latzboy

Mitglied
Hallo zusammen,

ich mache zur Zeit diesen Java-Anfängerkurs, den ihr sicherlich alle kennt:
Kapitel 31 Programmieraufgaben

Zu dieser Aufgabe hat hier auch schon mal jemand was geschrieben, aber das hat mir in meiner Frage nicht weiter geholfen.
In der Aufgabe soll man den Benzinverbrauch eines Autos berechnen und zusätzlich noch berechnen, ob es ein sparsames Auto ist, oder eben nicht. In der Aufgabenstellung steht, man soll das mit boolean-Methoden machen und daran häng ich.
Ich hab jetzt das hier stehen

Java:
boolean benzinschwein()
	 {
		 if(calculateMPG() < 15) 
		 	 return true;
		 else
			 return false;

und was kann ich jetzt mit diesem true und false anfangen?
Muss ich dann in meiner (main)-Methode nochmal ne if-Anweisung schreiben? Das wäre ja dann total unwirtschaftlich. Dann hätt ich mir ja die boolean-Methoden komplett sparen können!
Vielen Dank schonmal!
 

codechaos

Mitglied
Das wäre ja dann total unwirtschaftlich.
Eben nicht! Stell dir vor, du hättest die Methode nicht und hast in deinem Programm an 10 Stellen die Abfrage, ob das Auto sparsam ist oder nicht. Also hättest du 10 mal irgendwo stehen if(car.calculateMPG() < 15){ ... }. Etwas später ändert sich aber die Definition (durch Kundenwünsche oder Technikvorsprung...) für sparsam. Du müsstest erst alle 10 Stellen raus suchen, wo verglichen wird und jedes mal die Werte angeben.
Wenn alles in einer Methode ausgelagert ist, hast du zwar 10x im Programmcode if(car.isFuelEfficient()){ ... } stehen, aber du bräuchtest den Wert nur an einer Stelle ändern.
 
H

hüteüberhüte

Gast
Du könntest z.B. so etwas schreiben:

Java:
    public static boolean hoherVerbrauch(int verbrauch) {
        return verbrauch >= 15;
    }

    public static void main(String[] args) {
        int[] verbrauch = new int[20];
        Random r = new Random();
        for (int i = 0; i < verbrauch.length; i++) {
            verbrauch[i] = r.nextInt(16) + 5; // 5..20
        }

        for (int v : verbrauch) {
            System.out.println("Verbrauch: " + v + "\tHoher Verbrauch: " + hoherVerbrauch(v));
        }
    }

Code:
Verbrauch: 17	Hoher Verbrauch: true
Verbrauch: 5	Hoher Verbrauch: false
Verbrauch: 16	Hoher Verbrauch: true
Verbrauch: 17	Hoher Verbrauch: true
Verbrauch: 17	Hoher Verbrauch: true
Verbrauch: 7	Hoher Verbrauch: false
Verbrauch: 5	Hoher Verbrauch: false
Verbrauch: 8	Hoher Verbrauch: false
Verbrauch: 20	Hoher Verbrauch: true
Verbrauch: 10	Hoher Verbrauch: false
Verbrauch: 13	Hoher Verbrauch: false
Verbrauch: 14	Hoher Verbrauch: false
Verbrauch: 20	Hoher Verbrauch: true
Verbrauch: 16	Hoher Verbrauch: true
Verbrauch: 13	Hoher Verbrauch: false
Verbrauch: 14	Hoher Verbrauch: false
Verbrauch: 6	Hoher Verbrauch: false
Verbrauch: 20	Hoher Verbrauch: true
Verbrauch: 12	Hoher Verbrauch: false
Verbrauch: 16	Hoher Verbrauch: true

Du brauchst nicht überall ? : schreiben, und die Definition des hohen Verbrauchs kann nachträglich geändert werden.

Grüße
 

Bernd Hohmann

Top Contributor
und was kann ich jetzt mit diesem true und false anfangen?
Muss ich dann in meiner (main)-Methode nochmal ne if-Anweisung schreiben? Das wäre ja dann total unwirtschaftlich. Dann hätt ich mir ja die boolean-Methoden komplett sparen können!

Ich bin da ganz bei Dir - das Problem an kurzen Beispielen ist, dass sie einfach zu kurz sind.

Also genauso als würde ich die Vorzüge eines Automobils damit anpreisen, dass man bequem den Nachbarn aufsuchen kann - da denkt sich auch jeder "Schwachsinn, bis ich das Auto aus der Garage gebracht habe bin ich auch hingelaufen".

Aber: wenn Du Ananaszüchter in Alaska bist, ist der Nachbar unter Umständen 40 Kilomenter entfernt und dann ist mit "zu Fuß" eher nichts mehr ;)

In Deinem Beispiel geht es u.a. darum, wie man einen beliebigen Vergleich auf einen boole'schen Wahrheitswert eindampft.

Natürlich kannst Du im Hauptprogramm schreiben "if (calculateMPG() < 15) System.out.println("Benzinschwein")" und ersparst Dir die eine Routine. Das bedeutet natürlich auch, dass Du an jeder weiteren Stelle - wo Du eine Entscheidung "Benzinschwein oder nicht" treffen musst - diesen Vergleich "miles per gallon < 15" händisch durchführen. Sollte sich das Volksgewissen ändern und zukünftig jedes Auto, was schon 100 Meilen per US-Gallone fahren kann als Benzinschwein bezeichnen darfst Du den gesamten Code auf "15" durchsehen, prüfen ob da auch irgendwo mit MPG verglichen wird und das auf 100 ändern.

Insofern hat auch eine kurze Routine "benzinschwein() true/false" seine Berechtigung.

Bernd
 
H

hüteüberhüte

Gast
Und dann noch so ne schöne compare()-Methode:

Java:
        Integer[] verbrauch = new Integer[20];
        Random r = new Random();
        for (int i = 0; i < verbrauch.length; i++) {
            verbrauch[i] = r.nextInt(16) + 5; // 5..20
        }

        Arrays.sort(verbrauch, new Comparator<Integer>() {
            public int compare(Integer o1, Integer o2) {
                if (hoherVerbrauch(o1) == hoherVerbrauch(o2)) {
                    return 0;
                }
                return hoherVerbrauch(o1) ? 1 : -1;
            }
        });

        for (int v : verbrauch) {
            System.out.println("Verbrauch: " + v + "\tHoher Verbrauch: " + hoherVerbrauch(v));
        }
Code:
Verbrauch: 13	Hoher Verbrauch: false
Verbrauch: 11	Hoher Verbrauch: false
Verbrauch: 11	Hoher Verbrauch: false
Verbrauch: 13	Hoher Verbrauch: false
Verbrauch: 10	Hoher Verbrauch: false
Verbrauch: 6	Hoher Verbrauch: false
Verbrauch: 8	Hoher Verbrauch: false
Verbrauch: 14	Hoher Verbrauch: false
Verbrauch: 14	Hoher Verbrauch: false
Verbrauch: 8	Hoher Verbrauch: false
Verbrauch: 8	Hoher Verbrauch: false
Verbrauch: 6	Hoher Verbrauch: false
Verbrauch: 14	Hoher Verbrauch: false
Verbrauch: 5	Hoher Verbrauch: false
Verbrauch: 14	Hoher Verbrauch: false
Verbrauch: 20	Hoher Verbrauch: true
Verbrauch: 18	Hoher Verbrauch: true
Verbrauch: 17	Hoher Verbrauch: true
Verbrauch: 15	Hoher Verbrauch: true
Verbrauch: 15	Hoher Verbrauch: true
 

Latzboy

Mitglied
Ok, danke schon mal für die nette Hilfe.

Warum ich das machen sollte, versteh ich jetzt auch (Danke Bernd für den schönen Vergleich :) )
Ich hab's jetzt so geschrieben und es funktioniert. Die Frage ist nur, ob das gut programmiert ist

Java:
if (car.benzinschwein() ==  true)
				{
			System.out.println("Benzinschwein");
				}
		else
		System.out.println("Sparauto");

@hüteüberhüte:
Ich bin echt ein ganz blutiger Anfänger und versteh leider von deinem Code so gut wie gar nichts! Das bringt mich gleich zu ner anderen Frage: Ich hab jetzt häufig gelesen, dass man viel Code lesen sollte, um gut im Programmieren zu werden, aber wo genau krieg ich denn open-source-code für java her und wie kann ich mir den dann anschauen. Was würdet ihr mir empfehlen?
 
H

hüteüberhüte

Gast
Ok, viele KSKB s befinden sich hier im Forum. Und zweitens musst du nicht unbedingt if-else schreiben, sondern:

Java:
System.out.println(car.benzinschwein() ? "Benzinschwein" : "Sparauto");

Und
Java:
if (car.benzinschwein() ==  true)
== (entspricht/ist gleich)
Java:
if (car.benzinschwein())

PS: Bitte drücke auf Danke :D :toll:
 
H

hüteüberhüte

Gast
Ist das eigentlich so eine Art Pornografie-Ersatz für dich, oder was machst du mit den ganzen Dankes, die du dir so erbettelst?

Och nö nicht schon wieder so eine OT Diskussion von einer (anonymen) nicht ernst zu nehmenden person :oops:

@TO: Der "Danke"-Button befindet sich unterhalb von Beiträgen rechts
 
Zuletzt bearbeitet von einem Moderator:
B

bone2

Gast
Ist das eigentlich so eine Art Pornografie-Ersatz für dich, oder was machst du mit den ganzen Dankes, die du dir so erbettelst?

aber aber epeen
DoPaL.png


Java:
boolean benzinschwein() {
    return calculateMPG() < 15;
}
und
Java:
if (car.benzinschwein()) {
    System.out.println("Benzinschwein");
}
else {
    System.out.println("Sparauto");
}
ist die standardschreibweise, die du dir merken solltest
 
B

bone2

Gast
[OT]
Ok, jetzt musste ich erst mal ins Urban Dictionary einlesen. Epeen = "Electronic PEnis ENlargement"? Ok, wenn du meinzt. Gest traut sich doch nicht mal, sich hier anzumelden. Also nur irgendein Hans Wurst. ;)
ich steh dazu und bin angemeldet. aber bin das thema leid, werd dich einfach in ein paar weiteren
"büdde büdde gib mir ein danke ich bin doch so toll, hier waren 5 zeilen code" ignorieren und gut
habs bisher nicht gemacht, weil du manchmal gute denkansätze postest
kann nicht nachvollziehen, was du dir von der kleinen dankezahl erwartest? viele davon machen deine antworten auch nicht besser. wir haben anonyme gästeposts hier die vor wissen nur so glänzen.

das passendere urban dictionary is übrigends:
short for electronic penis, this is used for losers on the internet to try and boost their self esteem by using a facticious item such as the epeen, usually refered to in size.
das einzig positive was man dir zu dem thema noch zu gute schreiben kann ist, das du selber auch fleißig danke an jeden brauchbaren post verteilst. andere sehen das mit dem danke button aber deutlich entspannter. ein "danke" im post text schreiben noch viele, die dankbar sind. buttons, wayne.
ich verteile die, wie man links sieht, nur wenn ich echt beeindruckt bin.

Nichts anderes habe ich doch bereits geschrieben. ???:L
und den armen dann gleich noch mit ?: ohne passende erklärung und comparable beworfen
und methode, signatur, formel, parameter- und variablennamen verändert
war nur ne zusammenfassung damit mein post nich völlig ot is. du hast nen hang dazu 10 km übers ziel hinauszuschießen. selbst bei so simplen fragen wie: boolean in if kommt mir komisch vor[/OT]
 
Zuletzt bearbeitet von einem Moderator:
H

hüteüberhüte

Gast
@bone2: Schon mal an ein Minimum korrekter Rechtschreibung gedacht? Deine Sauklaue kann doch keiner lesen. Alles Weitere ist bitte unter Sonstiges - Plauderecke zu schreiben. Es hat nichts mit dem Thema zu tun. Und schön, wenn du mit weniger Beiträgen und auch mit weniger Danke ganz offensichtlich neidisch bist. Wenigstens trage ich noch etwas zum Thema bei und verbringe nicht die meiste Zeit damit, irgendwelche Beleidigungen aus dem Urban Dictionary zu suchen, weil ich ansonsten ein Versager bin. lol
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
R Boolean Methode Rückgabewert if() Java Basics - Anfänger-Themen 1
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
F Boolean Methode Wert ausgeben. Java Basics - Anfänger-Themen 2
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
W In Methode boolean array zurückgeben Java Basics - Anfänger-Themen 3
K Problem mit Methode(Array,Boolean,ForSchleife) Java Basics - Anfänger-Themen 6
V Methode erstellen für ein Boolean Array Java Basics - Anfänger-Themen 13
A boolean Methode ohne If und else Java Basics - Anfänger-Themen 1
K Methode ohne Rückgabewert in boolean Methode ändern Java Basics - Anfänger-Themen 6
L Boolean Methode wirft Fehler aus Java Basics - Anfänger-Themen 12
S Setter Methode von Boolean Java Basics - Anfänger-Themen 11
A In Methode boolean ändern Java Basics - Anfänger-Themen 2
E Boolean sondierende Methode Java Basics - Anfänger-Themen 5
Shanks boolean Methode Java Basics - Anfänger-Themen 8
M boolean methode Java Basics - Anfänger-Themen 6
G boolean Methode Vier gewinnt Java Basics - Anfänger-Themen 6
J get Methode(boolean) JRadiobutton? Java Basics - Anfänger-Themen 2
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 5
xaerez Threads Boolean Wert verändert sich nicht Java Basics - Anfänger-Themen 4
B Rückgabewert boolean Java Basics - Anfänger-Themen 8
J Compiler-Fehler Harshadzahlen mit Boolean Java Basics - Anfänger-Themen 4
J boolean aufgabe Java Basics - Anfänger-Themen 9
A Boolean Java Basics - Anfänger-Themen 5
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
J Boolean[] teilen Java Basics - Anfänger-Themen 13
S public static boolean Java Basics - Anfänger-Themen 4
L Überschriebene Boolean Statements Java Basics - Anfänger-Themen 2
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
R Boolean value ohne Kontrollstrukturen ändern Java Basics - Anfänger-Themen 5
F boolean stellt sich auf true Java Basics - Anfänger-Themen 15
V Boolean Wert nicht richtig erkannt Java Basics - Anfänger-Themen 4
Kirby.exe ArrayOutOfBoundsException bei boolean Array Java Basics - Anfänger-Themen 19
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
I converting boolean Array to String Array Java Basics - Anfänger-Themen 10
C Java Boolean reagiert nicht Java Basics - Anfänger-Themen 18
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
G Ratlosigkeit zur Aufgabe im Anhang (boolean, equals.) Java Basics - Anfänger-Themen 20
K Boolean in einer erstellten Klasse verwenden Java Basics - Anfänger-Themen 14
X Erste Schritte boolean wert ändert sich nicht? Java Basics - Anfänger-Themen 6
W Problem mit dem Wert von boolean-Variable Java Basics - Anfänger-Themen 3
P Array Sortieren mit boolean? Java Basics - Anfänger-Themen 33
A Boolean in String Java Basics - Anfänger-Themen 2
S Operatoren Boolean Vergleichsoperator Java Basics - Anfänger-Themen 7
Queiser Super boolean Java Basics - Anfänger-Themen 11
E ISBN Nummer mit boolean Java Basics - Anfänger-Themen 5
B Math.random mit Boolean array? Java Basics - Anfänger-Themen 17
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
T Methoden Boolean wird nicht gesetzt Java Basics - Anfänger-Themen 1
H boolean Array Problem Java Basics - Anfänger-Themen 7
S boolean Wert von mehreren int Möglichkeiten abfragen ? Java Basics - Anfänger-Themen 4
J Problem mit Boolean bei Funktion! Java Basics - Anfänger-Themen 5
O boolean Array Frage! Java Basics - Anfänger-Themen 4
? Methoden Boolean Wert vergleichen und einlesen Java Basics - Anfänger-Themen 1
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
D Boolean Array initialisieren Java Basics - Anfänger-Themen 4
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
A Problem beim Deklarieren von einem BOOLEAN Java Basics - Anfänger-Themen 4
W Interpreter-Fehler boolean nur eins darf wahr sein Java Basics - Anfänger-Themen 11
G Wie kann man den Erfolg einer Zuweisung als Boolean Wert verwenden? Java Basics - Anfänger-Themen 12
T Boolean by Reference Java Basics - Anfänger-Themen 6
L Wertebereich von boolean Java Basics - Anfänger-Themen 4
D Erklärung static boolean Java Basics - Anfänger-Themen 6
T Eine String Matrix erstellen die eine boolean Funtion verwendet Java Basics - Anfänger-Themen 10
J Datentypen Boolean Refferenz Objekt Java Basics - Anfänger-Themen 2
fLooojava Laufender Thread | Boolean ändern Java Basics - Anfänger-Themen 9
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
A Boolean aus dem ActionlListener Java Basics - Anfänger-Themen 1
T hashCode mit boolean Java Basics - Anfänger-Themen 1
T boolean, was passiert hier? Java Basics - Anfänger-Themen 4
M Sind solche boolean Anweisen empfehlenswert? Java Basics - Anfänger-Themen 3
N Boolean Werte - immer "false" Java Basics - Anfänger-Themen 5
J GUI per Boolean steuern Java Basics - Anfänger-Themen 3
F Effizientes Lesen von 65 Datein mit Boolean Werten Java Basics - Anfänger-Themen 6
K Viergewinnt - boolean Problem Java Basics - Anfänger-Themen 2
S Best Practice Boolean mit IF verbinden Java Basics - Anfänger-Themen 7
D Boolean mit String Java Basics - Anfänger-Themen 2
E 2 dimensionales Boolean Array Java Basics - Anfänger-Themen 5
B assertArrayEquals nicht für boolean[]? Java Basics - Anfänger-Themen 2
M !boolean das selbe wie boolean == false? Java Basics - Anfänger-Themen 3
M Erste Schritte boolean: ist Zahl Hexadezimal - Lösung verwirrend Java Basics - Anfänger-Themen 6
F Datentypen Frage nach Boolean Java Basics - Anfänger-Themen 11
C Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 20
B Boolean abfrage Java Basics - Anfänger-Themen 3
L The operator && is undefined for the argument type(s) String, boolean Java Basics - Anfänger-Themen 8
W Datentypen Zweidimensionales Boolean Array Java Basics - Anfänger-Themen 13
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
M int & boolean Java Basics - Anfänger-Themen 12
feardorcha boolean array false - true - Abfrage Java Basics - Anfänger-Themen 10
R boolean, if-else Java Basics - Anfänger-Themen 7
J Variablen Boolean true "übersetzen" in String Java Basics - Anfänger-Themen 10
M Meldung "cannot convert flom boolean to boolean[]" Java Basics - Anfänger-Themen 3
S Name eines boolean ausgeben (nicht den Wert) Java Basics - Anfänger-Themen 43
S Variablen Prüfen, ob einer von vielen boolean true ist Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben