Beispiel über das Schlüsselwort this
Hallo
zusammen. Wie versprochen möchte ich euch ein ausführliches
Beispiel über das Schlüsselwort this anzeigen. Bis jetzt haben wir
nichts mit diesem Begriff gemacht. Bei meinem letzten Post habe ich
nur die Erklärung beziehungsweise die Bedeutung und die Funktion des
Schlüsselbegriffs in Java erklärt. Jetzt möchte ich anhand eines
Beispieles die Benutzung des Wortes zeigen.
Ich
habe einen Programm welches aus zwei Klassen besteht angelegt. In der
Klasse AutoKlasse findet ihr das Begriff this welches wir nur
zwischen Zeile 13 und 16 angewendet haben. In unsere Hauptklasse
RunKlasse befindet sich die Main-Methode. In dieser Methode wird der
Benutzer über die Attribute/Eigenschaften seines Wunschautos
abgefragt. Der Benutzer kann hier freie Eingaben tätigen.
Fangen
wir mit unsere AutoKlasse an. Beim Programmieren ist es sinnvoll
immer zum Schluss die Main-Methode zu programmieren.
Nachdem
wir unsere Klasse AutoKlasse angelegt haben, deklarieren wir die vier
Variablen mit dem Namen autoModel, autoFarbe, autoLeistung und
verbrauch mit den Datentyp String für autoModel und autoFarbe, int
für autoLeistung sowie boolean für den verbrauch. Mit verbrauch
wird hier nicht der Verbrauch pro 100 km gemeint sondern der
Brennstoff wie Benzin oder Diesel. Nach dem wir unsere Variable
deklariert haben, müssen wir diese eigentlich noch initialisieren
sodass wir mit diesem auch arbeiten können. Davor müssen wir aber
eine neue Methode schreiben, welches Parameter von der Klasse
RunKlasse erwarten soll.
Nach
der Entwicklung unsere Methode dasErsteAuto() { Zeile 11 verwenden
wir das Wort this.
Das
Wort this unterscheidet hier die Werte zwischen zwei Gleichnamigen
Variablen.
Zum
Beispiel steht in der Zeile 13 das Befehl: this.autoFarbe =
autoFarbe;
Wenn
ihr das Komplette Programm in eurer Entwicklungsumgebung kopiert und
falls der Compiler keine Fehlermeldung anzeigt, klickt bitte einmal
auf das begriff autoFarbe welches nach dem Wort this vorkommt. Ihr
wird feststellen, dass diese Variable sich auf das im Zeile 6
stehenden Variable autoFarbe bezieht. Dieses hat aber kein Wert. Nun
das Wert gibt die Variable welches nach dem ist gleich „=“
Zeichen stehende Variable autoFarbe an. Die Variable welches das Wert
besitzt, wird in der Klasse RunKlasse definiert. Wir hatten nur die
Werte zwischen Zeile 13 und 16 neu angewendet. In dem folgenden
Programm sowie in der Klasse RunKlasse sind die Befehle alle Bekannt.
Ich werde das Programm kurz mit euch durchgehen sodass ihr euch mit
jedem Syntax auseinander setzen könnt. In der Zeile 18 Beginnt, wie
ihr das anhand der Quelldatei erkennen könnt, die Verzweigung mit
der Bedingung, dass falls verbrauch true ist, die Folgenden ausgaben
ausgegeben werden sollen und falls aber der verbrauch false ist, die
Ausgaben in dem zweiten Verzweigung Block. Nun warum ist einmal der
verbrauch true und false? Das hat einen Semantischen Hintergrund. Ich
habe oben erwähnt, dass wir in unserem Programm zwei Arten von Autos
anbieten welches entweder Diesel oder Benziner sein können. In
Wirklichkeit gibt es Erdgas, Strom, Diesel, Benzin etc. Da wir nur
Benzin und Diesel im Angebot haben, haben wir nur zwei Möglichkeiten
im Angebot. Da jeder Programmierer Speicherschonend programmieren
soll, müssen wir uns immer den Speicher im Hintergrund behalten. Ich
könnte hier auch String oder Char verwenden jedoch ist boolean hier
die Sparsamste. Wie ihr das in dem Beiden Blöcken erkennen könnt,
Sind die Ausgaben leicht erkennbar und braucht keine Extra
erläuterung.
Bewegen
wir uns zu der Klasse RunKlasse. Diese Klasse besteht aus insgesamt
vier Methoden. Die erste Methode ist die Main-Methode. Die zweite
Methode ist die Methode für das Abfragen der Werten für die
jeweiligen Parameter. Die Dritte Methode gibt die Werte, welches in
der Klasse abfragen(); der Variablen deklariert worden sind, in die
Klasse AutoKlasse ein. Unsere vierte Klasse ist für das Ende
zuständig. Sobald das Programm in der Klasse AutoKlasse seine letzte
Ausgabe ausgegeben hat, landet es wieder in der Main-Methode genauer
gesagt in der Zeile 45. Dort werden die Scanner geschlossen sodass
diese nicht unnötig im Speicher den Speicherplatz besetzen und der
Compiler in die vierte Methode ende(); versetzt. Nachdem der Compiler
in der Methode ende(); die Ausgaben zwischen der Zeile 61 und 63
ausgegeben hat, beendet der Compiler das Programm mit dem Befehl
System.exit(0);
Was
Passiert in der Methode abfragen(); ?
In
der Methode wird als erstes das Model und Marke des Wagens
festgestellt. Dabei kann der Benutzer alle Marken eingeben. Das
Programm wurde nicht für Abfangen der Fehler programmiert ansonsten
wäre der Syntax zu kompliziert um die Funktion des Schlüsselworts
this zu verstehen. Das Eingegebene Model und Name des Autos wird in
die Variable autoModel als String wert gespeichert. Danach wird mit
einer Empfehlung von vier Farben, rot, blau, gelb und schwarz, die
Farbe des Autos als String in die Variable autoFarbe gespeichert.
Nach dem wir dies Unternommen haben, fragt uns das Programm, welche
Leistung unser Auto haben soll. Wir müssen hier eine Ganzzahl
eingeben. Hier könnte der Benutzer frech sein und ein negatives Wert
welches sinnlos sein würde eingeben. Genau hier könnten wir ein try
& catch Block programmieren jedoch musste ich auch hier darauf
verzichten da sonst das Programm zu umfangreich wäre. Schließlich
wird uns am Ende die Letzte Frage in der Zeile 31 bis 35 gestellt in
dem der Zustand der Variable verbrauch festgelegt wird. Wir sollen
die Zahl 0 betätigen falls wir uns für ein Benziner oder die Zahl 1
tätigen falls wir uns für ein Diesel Motor entscheiden würden.
Dieser Befehl ist ein Zahlenwert und kann nicht als Zustand
angewendet werden. Damit wir diese Barriere überwinden können, habe
ich wieder eine Verzweigung eingesetzt in dem ich falls die Variable
verbrauchSoll 0 ist die variable verbrauch true zustand besitzen
soll, Falls aber die Variable den Wert 1 besitzt soll die Variable
verbrauch den Zustand false besitzen. Danach geht das Spiel wieder
von vorne los. Ich habe für euch unten das Programm mit einem
Beispielhaften Ausfuhrvorgang eingetragen. Falls ihr Fragen oder
Schwierigkeiten habt, könnt ihr euch jederzeit melden.
------------------------------------RUNKLASSE-----------------------------------------
01
package java2enterprise;
02
03
import java.util.Scanner;
04
05
public class RunKlasse
{
06
07 public
static void main(String[] args) {
08
10 System.out.println("PROGRAMM
START");
11 System.out.println("--------------");
12 abfragen();
13 }
14
15 public
static void abfragen() {
16 Scanner
scannerVariable = new
Scanner(System.in);
17 System.out.println("Was
für ein Auto möchten Sie haben?");
18 System.out.println("Geben
Sie das Modell des Wagens sowie den Namen des Herstellers ein:");
19 String
autoModel = scannerVariable.nextLine();
20
21 Scanner
scannerVariable1 = new
Scanner(System.in);
22 System.out.println("In
welcher Farbe soll das Auto lackiert werden?");
23 System.out.println("Es
stehen zurzeit nur vier Farben zu verfügung \n " +
"Diese
sind: [rot], [blau], [gelb], [schwarz]");
24 String
autoFarbe = scannerVariable1.nextLine();
25
26 Scanner
scannerVariable2 = new
Scanner(System.in);
27 System.out.println("Wie
viel PS soll ihr Auto haben?");
28 int
autoLeistung = scannerVariable2.nextInt();
29
30 Scanner
scannerVariable3 = new
Scanner(System.in);
31 System.out.println("Soll
es ein Diesel oder ein Benziner sein?");
32 System.out.println("Geben
Sie für [benzin] die [0] ein, falls Sie ein Benziner haben
wollen.");
33 System.out.println("Geben
Sie für [diesel] die [1] ein, falls Sie ein Diesel haben wollen.");
34 byte
verbrauchSoll = scannerVariable3.nextByte();
35
36 if(verbrauchSoll
== 0){
37 boolean
verbrauch = true;
38 erwarten(verbrauch,
autoLeistung, autoModel, autoFarbe);
39 }
40 else
if (verbrauchSoll == 1){
41 boolean
verbrauch = false;
42 erwarten(verbrauch,
autoLeistung, autoModel, autoFarbe);
43 }
44
45 scannerVariable3.close();
46 scannerVariable2.close();
47 scannerVariable1.close();
48 scannerVariable.close();
49 ende();
50 }
51
52 public
static void erwarten(boolean
verbrauch, int
autoLeistung, String autoModel, String
autoFarbe) {
53
54 AutoKlasse
auto = new AutoKlasse();
55 auto.dasErsteAuto(autoModel,
autoFarbe, autoLeistung, verbrauch);
56
57 }
58
59 public
static void ende() {
60 System.out.println("-------------");
61 System.out.println("PROGRAMM
ENDE");
62 System.out.println("-------------");
63
64 System.exit(0);
65 }
66
67
}
------------------------------------AUTOKLASSE-----------------------------------------
01 package
java2enterprise;
02
03 public
class AutoKlasse {
04
05 String
autoModel;
06 String
autoFarbe;
07 int
autoLeistung;
08 boolean
verbrauch;
09
10
11 public
void dasErsteAuto(String autoModel,
String autoFarbe, int
autoLeistung, boolean
verbrauch) {
12
13 this.autoFarbe
= autoFarbe;
14 this.autoLeistung
= autoLeistung;
15 this.autoModel
= autoModel;
16 this.verbrauch
= verbrauch;
17
18 if
(verbrauch == true)
{
19 //
Benziner
20
21
22 System.out.println("Es
handelt sich um den "+autoModel);
23 System.out.println("Der
"+autoModel+"
hat "+autoLeistung+"
PS.");
24 if(autoFarbe
== "rot"){
25 System.out.println("Mit
der Farbe "+autoFarbe+"
sieht es Sexy aus.\nPerfekt für Ihre Frau.");
26 }
27 else
if(autoFarbe == "schwarz"){
28 System.out.println("Mit
der Farbe "+autoFarbe+"
sieht es Elegant aus.");
29 }
30 else
if(autoFarbe == "blau"){
31 System.out.println("Mit
der Farbe "+autoFarbe+"
sieht es Himmlisch aus.");
32 }
33 else
if(autoFarbe == "gelb"){
34 System.out.println("Mit
der Farbe "+autoFarbe+"
scheint es wie die Sonne");
35 }
36 else{
37 System.out.println("Ihr
Wunschauto "+autoModel+"
mit der Farbe "+autoFarbe+"
sieht einfach cool aus.");
38 }
39 System.out.println("FAZIT:
\n " +
"Sie
möchten ein \n "+autoModel+"
welches "+autoLeistung+"
PS besitzt, \n" +
"
in der Farbe "+autoFarbe+"
mit dem Benziner Motor kaufen.");
40
41
42
43 }
44 else
if(verbrauch == false) {
45
46 //
Diesel
47
48
49 System.out.println("Es
handelt sich um den "+autoModel);
50 System.out.println("Der
"+autoModel+"
hat "+autoLeistung+"
PS.");
51 if(autoFarbe
== "rot"){
52 System.out.println("Mit
der Farbe "+autoFarbe+"
sieht es Sexy aus.\nPerfekt für Ihre Frau.");
53 }
54 else
if(autoFarbe == "schwarz"){
55 System.out.println("Mit
der Farbe "+autoFarbe+"
sieht es Elegant aus.");
56 }
57 else
if(autoFarbe == "blau"){
58 System.out.println("Mit
der Farbe "+autoFarbe+"
sieht es Himmlisch aus.");
59 }
60 else
if(autoFarbe == "gelb"){
61 System.out.println("Mit
der Farbe "+autoFarbe+"
scheint es wie die Sonne");
62 }
63 else{
64 System.out.println("Ihr
Wunschauto "+autoModel+"
mit der Farbe "+autoFarbe+"
sieht einfach cool aus.");
65 }
66 System.out.println("FAZIT:
\n " +
"Sie
möchten ein \n "+autoModel+"
welches "+autoLeistung+"
PS besitzt, \n" +
"
in der Farbe "+autoFarbe+"
mit dem Benziner Motor kaufen.");
67
68 }
69 }
70 }
Kommentare
Kommentar veröffentlichen