Das ist schön.Ich lerne gerade java
In diesem Fall brauchst du das "this" nicht.[CODE lang="java" title="Code"]
public class Auto
{ private double preis; private String modell; private int baujahr; private int kilometerstand; private String farbe; /**Konstruktor benötigt folgende Werte: Preis, Modell, Baujahr, Kilometerstand und Farbe.*/
public Auto (double wert1, String wert2, int wert3, int wert4, String wert5)
{ this.preis = wert1; this.modell = wert2; this.baujahr = wert3; this.kilometerstand = wert4; this.farbe = wert5; } }
[/CODE]
Ich denke du meinst eher auf die Klasse 🙃This zeigt in diesem Fall auf die Kasse.
this
zeigt auf ein konkret von einer Klasse instanziiertes Objekt oder auch einfach eine bestimmte Instanz dieser Klasse.this
nicht nötig, weil die Parameter wie wert1
nicht spechend sind.this
notwendig:public class Auto {
private double preis;
public Auto(double preis) {
this.preis = preis;
}
}
preis
benutzt den Übergabeparameter;this.preis
benutzt das Member der Klasse.public class Auto {
private double preis;
public Auto(double preis) {
preis = preis;
}
}
Bisher hatte ich den gegenteiligen Eindruck, Du stellst einfach eine Frage im Forum ohne dir selber die geringste Mühe gemacht zu haben. Ich werde darauf nicht antworten, das Thema gibt es tausendfach im Netz.Ich lerne gerade java
Sorry TippfehlerIch denke du meinst eher auf die Klasse 🙃
Dann auf jeden Fall.Kann es sein, dass das keyword "this" bei einem Namenskonflikt verwendet wird? Wenn man zwischen Attributen und Objektparameter einer Methode unterscheiden will?
Auch, ja (NB: manche verwenden grundsätzlich this, wenn sie auf Instanzvariablen zugreifen), this wird aber genauso als Parameter oder Rückgabewert verwendet.Kann es sein, dass das keyword "this" bei einem Namenskonflikt verwendet wird? Wenn man zwischen Attributen und Objektparameter einer Methode unterscheiden will?
Woher kommt so eine Vorstellung? Bei Methoden ist das evtl. eine Vorstellung, die von den Extension Methoden (die es in Java nicht gibt aber z.B. in Kotlin oder C#) getrieben wird, denn da gibt es dieses "this" ja als Parameter? Oder weil das bei konkreten Implementationen in der Art und Weise auftaucht? Ich kann jetzt nicht beurteilen, ob so eine Sichtweise / Vereinfachung hilfreich sein kann am Anfang, aber ich wäre da eher vorsichtig bei so Aussagen.this ist ein parameter der automatisch bei jedem methoden aufruf dabei ist, den parameter kannst ud auch nicht weg machen
public void go(Test this, int i)
The receiver parameter is an optional syntactic device for an instance method or an inner class's constructor. For an instance method, the receiver parameter represents the object for which the method is invoked. For an inner class's constructor, the receiver parameter represents the immediately enclosing instance of the newly constructed object. In both cases, the receiver parameter exists solely to allow the type of the represented object to be denoted in source code, so that the type may be annotated (§9.7.4). The receiver parameter is not a formal parameter; more precisely, it is not a declaration of any kind of variable (§4.12.3), it is never bound to any value passed as an argument in a method invocation expression or class instance creation expression, and it has no effect whatsoever at run time.
A receiver parameter may appear either in the MethodDeclarator of an instance method or in the ConstructorDeclarator of a constructor of an inner class where the inner class is not declared in a static context (§8.1.3). If a receiver parameter appears in any other kind of method or constructor, then a compile-time error occurs.
Der Compiler ignoriert es nie. Es ist halt der Receiver Parameter. Und der wird so wie jeder Parameter mit angegeben (als erster Parameter!). Dein Beispiel ließe sich also anpassen, indem man der Method enoch einen zweiten Parameter verpasst und dann beim Aufruf nur einen angibt (Wenn man das so sehen will):Das einzige wo der Compiler es nicht ignoriert ist sobald andere Parameter hinzu kommen. Da MUSS dann (wie üblich) mittels Komma "," getrennt werden.
public void go(Test this, int i)
public class Test
{
public void go(Test this, String msg)
{
System.out.println(msg);
}
public static void main(String[] args)
{
new Test().go("Hallo!");
}
}
Ich würde da einfach einmal empfehlen: Vergiss es einfach. Mir ist bisher nie eine Situation unter gekommen, bei der dies benötigt würde oder ich dies als sinnvoll erachten würde.ich verstehs nicht...
Und wenn man sich die internen Abläufe anschaut, dann wird man das vermutlich ebenso au f dem Stack haben wie z.B. auch die Parameter.
public static int WordCount(this string str)
{
// str kann hier sogar null sein! Das wäre ok!
// ...
}
Hier muss man strikt unterscheiden: die Sprache und ihre Syntax musst Du auswendig lernen. Das ist bis zu einem gewissen Grad kein größeres Problem, da die Sprache bis excl. Java 5 sehr einfach war. Die Grundlagen haben sich diesbezüglich kaum geändert.Ich schaffe es nicht, Übungen zu lösen, ohne im Internet die Befehle zu recherchieren. Ich frage mich, ob man die Syntax auswendig lernen muss.
Was sollte man als Quelle verwenden, um es auswendig zu lernen?Hier muss man strikt unterscheiden: die Sprache und ihre Syntax musst Du auswendig lernen.
Mach dir mal keinen Kopf. Übe einfach weiter. Mit der Zeit merkt man sich alles was wichtig ist. Anfangs muss man auch einfache Dinge öfter mal nachschlagen, aber das wird mit der Zeit immer weniger.Was sollte man als Quelle verwenden, um es auswendig zu lernen?
Super Idee und noch eine Melodie das ist dann der Java Song.Aber vielleicht sollte mal jemand Java in Form von Reimen verfassen, damit man dass schön auswendig lernen kann![]()
Die Java Keywords könnte man zum Nachschlagen parat halten (wobei man einige Schlüsselwörter häufiger als andere verwenden wird). Eine Methode kapselt idR einen oder mehrere der elementaren Befehle. Klassen dienen zum Herstellen von Zusammenhängen von Daten.auswendig
Beide haben Vor- und Nachteile und effektiv Sinn machende Einsatzgebiete (z.B.): https://www.java67.com/2016/06/5-difference-between-bufferedreader-and-scanner-in-java.htmlBuffered Reader ... Scan
Ja, wenn du das möchtest, dann mach einfach einen neuen Thread auf. Also bitte nicht hier als Antwort einhängen sondern ein neues Thema starten.Ich habe so ein Programm geschrieben und ich weiß nicht, ob ich es mal hier posten sollte oder nicht. Ihr könntet mir dann sagen, ob ihr es gut findet. Was meint ihr dazu?