Java Grundlagen

Status
Für weitere Antworten geschlossen.
Für mich ist es noch verwirrend, dass die Getter und Setter vorher erstellt werden. Könnte man diese Setter und Getter nicht innerhalb der Objekterzeugung herstellen?
 
Haha, das kommt daher, dass du ungefähr eine Vorahnung haben musst was dein "Program" eigentlich machen soll. Dein Program soll etwas zuweisen und etwas auslesen. Das ist der Sinn deines codes und den sollte man schon vorher ungefähr kennen und nicht erst auf eine Offenbarung beim Schreiben warten (was auch sehr oft passiert) :)
Du musst im Kopf schon wissen ob du etwas verändern willst, dann brauchst du einen "setter" oder etwas nur auslesen willst, dann brauchst du einen "getter". Aber zuvor brauchst du einen Plan ;)
 
BloodRocks schrieb:
Für mich ist es noch verwirrend, dass die Getter und Setter vorher erstellt werde
wie meinst du das mit vorher? Wann ist die Reihenfolge von Methoden in Java relevant?

BloodRocks schrieb:
Könnte man diese Setter und Getter nicht innerhalb der Objekterzeugung herstellen?
Fuehr auch das nochmal genauer aus. Was bedeutet Objekterzeugung fuer dich? Was denkst du was eine Methode ist?

(ich stelle dir die fragen so, dass du vielleicht selbst drauf kommst. Alles vorgekaut bekommen bringt nicht viel an der Stelle. Bringst du dir das gerade selbst bei, besuchst du einen Kurs oder ist das Teil eines Studiums)
 
Mir ist jetzt klar, dass die Getter und Setter in der Klasse erzeugt werden müssen. Also muss das "vorher" gemacht werden. Vorhin war mir das nicht so klar.
 
Code:
 public class MethodenRueckgabe {
//Methode gibt eine ganze Zahl (int) zurück
public static int gibZurueck () {
return 2;
}

public static void main (String [] args){
//Die println Anweisung gibt jetzt das Ergebnis der Methode auf der Konsole aus.
System.out.println(gibZurueck ());
}
}
nachdem "return2" gemacht wurde, hat dann "gibZurueck ()" den Wert 2? Können auch Methoden Werte haben?
 
Methoden haben keinen Wert, weil sie keine Variablen sind. Wenn die Methode hart codiert return 2 macht, gibt sie natürlich jedes Mal denselben Wert zurück, klar. Dennoch hat die Methode an sich keinen Wert, sondern nur ein Ergebnis, das sie zurückliefert, und dieses Ergebnis ist nun eben immer 2.

Vielleicht wird es mit diesem Beispiel deutlicher:

Code:
public static int gibZurueck(int input){
   return input;
}

public static void main (String [] args){
   System.out.println(gibZurueck (1));
   System.out.println(gibZurueck (167));
   System.out.println(gibZurueck (9));
   System.out.println(gibZurueck (36643));
}

Es gibt in dem Fall gar kein gibZurueck() und demnach kann die Methode auch keinen Wert haben. Sie reicht in diesem Beispiel einfach nur 1:1 das durch was sie als input übergeben bekommt.

Ich weiß aber ehrlich gesagt nicht was du daran immer noch nicht verstanden hast?!? Besorg dir bitte ein Buch zum Lernen oder such dir ein Tutorial im Netz, das von 0 anfängt, bei Adam und Eva. Ein Thread im Forum kann das selbständige Erlernen dieser Basics nicht ersetzen. Ganz platt formuliert: Wir machen das hier in unserer Freizeit und da haben wir auch mal besseres vor, als Seite 3 in $Programmierhandbuch vorzubeten.

Versteh mich nicht falsch, wenn du konkrete Fragen hast, die in dem Buch nicht behandelt werden, helfen wir gern, aber das hier ist keine Plattform, um bei absolut 0 zu beginnen und teilweise noch die Syntax erklären zu müssen.
 
  • Gefällt mir
Reaktionen: mental.dIseASe und DeepComputer
Eher spezifische Fragen zu einzelnen Themen. Was du jetzt tun solltest, ist, ein Buch über Objektorientierte Programmierung zu lesen. Es macht keinen Sinn, solche Grundlagen hier in 100 Seiten Forumsthread niederzuschreiben. Der Umfang ist für ein Forum zu groß und anderswo gibt es das schon.
Und die 100 Seiten brauchst du aber, da die Grundlagen nicht eben in 2 Seiten erklärt sind.
 
  • Gefällt mir
Reaktionen: mental.dIseASe, RenoV und Raijin
Ich verwende die Sololearn App und lese Sachen im Internet. Ausserdem schaue ich mir Videos an. Für ein Buch habe ich gerade keine Zeit. Das mache ich vielleicht demnächst mal.
 
Hey,

du kannst natürlich alle Fragen stellen und zumindest ich möchte sie beantworten soweit ich kann. Ich möchte unter keine Umständen zu einem dieser "tech-elite-pseudos" werden, die sich unglaublich daran ergötzen stolz zu sein wie eine Maschine zu denken. Ein Forum ist zum Austausch da und da darf gefragt werden.
Allerdings musst du schon auch die Argumente verdauen, die man dir hier gibt. So wie eine Funktion solltest du die Antworten hier als Argument aufnehmen, verdauen und dann dein Verständnis "returnen". Aber um es als ein Gleichnis auszusprechen "returnst du, wie in deinem Beispielcode, immer eine Konstante - nämlich deine eigenen Vermutungen ohne die übergebenen Argumente."
Also frag ruhig weiter, aber versuch auch zu verstehen. Wenn du nicht verstehst, dann frag ruhig nochmal, aber darauf bezogen was du nicht verstanden hast.

Ansonsten tuts mir leid, dass du die schlechte Laune hier von manchen abgekriegt hat.
 
  • Gefällt mir
Reaktionen: DubZ und BloodRocks
Es gibt Fragen und es gibt Fragen.
Die einen kann man stellen und wird mit relativ hoher Sicherheit vernünftige Antworten bekommen (außer das Thema ist zu speziell).
Denen geht aber ein gewisses Maß an Eigeninitiative voraus.
Den anderen Fragen lässt sich Faulheit unterstellen. Die Folge sind entsprechende Kommentare und eher minderwertige Antworten (auch weil dabei oft die Frage schlecht gestellt wird).
Wo zwischen diesen beiden die Grenze gezogen wird, ist sehr individuell.

Tatsächlich hat das dann aber weniger mit Elitismus zu tun, als viel mehr mit einem anderen Problem:
Programmieren ist nicht einfach.
Die logische Schlussfolgerung ist:
Das kann nicht jeder und wird auch nicht jeder erlernen können.

Neben den noch simplen Notwendigkeiten, wie auf einer Tastatur tippen zu können und den Syntax und die zugrunde liegenden Kontroll- und Steuerungsstrukturen einer Sprache zu kennen, sind u.a. ein gewisses Mindestmaß an analytischem, logischem und abstraktem Denkvermögen, strukturiertem und möglichst genauem Arbeiten und ausgeprägten Fähigkeiten für Recherche und Selbststudium unabdingbar.

Ein paar davon können durch Fähigkeiten anderer gelegentlich oder u.U. auch regelmäßig kompensiert werden, aber ganz besonders die letzten beiden kann dir niemand abnehmen und wenn du es doch probierst, wirst du so gut wie immer auf Ablehnung stoßen.
Wenn jemand programmieren lernen will und nicht in der Lage ist, sich fehlendes Wissen zusammenzusuchen oder Unbekanntes selbstständig anzueignen, der wird nicht weit kommen, ohne permanent jemand anderem im Ohr zu liegen.

Dafür sind Foren oder Plattformen wie Stackoverflow schlicht das falsche Format.
Ein Chat oder verbale Kommunikation sind da um Welten besser.

Wenn wirklich Bedarf dafür da ist, sollte sich auf die Suche nach einem Mentor, "Lehrer", o.ä. gemacht werden, der sich bereitwillig mit Fragen jeder Art Löchern lässt und gewillt, bzw. darauf vorbereitet ist auch Fragen zu beantworten, die mit einer passenden Google-Suche zu dutzenden, sehr ähnlicher Antworten führt.
Alternativ eignen sich dafür auch Bücher oder jede andere Form von Medium, dass nach und nach in die entsprechenden Grundlagen einführt.
 
  • Gefällt mir
Reaktionen: RenoV
@DeepComputer Ich weiß nicht, ob das mit der schlechten Laune auch auf mich bezogen ist, falls ja, möchte ich darauf hinweisen, dass das meinerseits nicht so gemeint ist und hoffentlich vom TE auch nicht so empfunden wird.
@BloodRocks wenn du momentan keine Zeit für ein Buch hast, dann ist das so. Dennoch würde ich (wie bereits erwähnt) eine systematische Einführung in das Thema objektorientierte Programmierung empfehlen. Du stellst hier Fragen (bspw. über den Setter und Getter), deren Sinn anhand der von dir dazu aufgeführten Minimalbeispiele fast nicht ersichtlich werden kann. In einer systematischen Einführung würde zunächst bspw. das Thema Datenkapselung und die Idee dahinter erklärt. Gleichzeitig würden zusätzliche Beispiele kommen, die dann mehr und mehr Komplexität reinbringen und die Vorteile (aber evtl auch Nachteile) von irgendwelchen Methodiken aufzeigen.
Neben Büchern gibt es natürlich auch im Netz Einführungen (bspw irgendwelche Vorlesungen)
Aber auch hier benötigt man eine gewisse Zeit, um ein Verständnis aufzubauen.
Ansonsten würde ich noch im Auge behalten, dass man grundsätzlich in der Programmierung viele Dinge auf vielerlei Art und Weise lösen kann. Manches, (was evtl auch als Best Practice angesehen wird), wurde schlicht irgendwann einmal so festgelegt, damit man sich eben auf etwas einigt. Es kann also durchaus sein, dass auf die Frage "Warum macht man das genau so und nicht so?" die Antwort auch mal lautet "Ohne speziellen Grund, man hat sich darauf geeinigt, damit es konsistent ist, daher wird es jetzt allgemein so empfohlen."
 
Ich kann den Kommentar zur schlechten Laune auch nicht so recht einordnen. Die Teilnehmer des Threads waren sehr geduldig und bemüht, die Fragen zu beantworten. Irgendwann ist man nur an dem Punkt angelangt, dass man kein Programmierhandbuch für Einsteiger in einem Thread replizieren kann. Wenn jemand keine Zeit hat, sich einem Anfängerbuch zu widmen und stattdessen darauf baut, dass andere ihre Freizeit für die Beantwortung der Fragen opfern, hat das aber schon ein gewisses Geschmäckle.

Handfeste Fragen zu einem Quellcode, der nicht so funktioniert wie man es erwartet, werden immer gerne beantwortet, aber Grundlagenfragen wie "Was ist eine Methode" kann man in 2 Minuten selbst ergoogeln - oder eben auf Seite 4 von $Programmierlehrbuch nachlesen. Etwaige Hinweise darauf haben nichts mit schlechter Laune zu tun.
 
  • Gefällt mir
Reaktionen: andy_m4 und mental.dIseASe
Bei mir ist es so, dass ich noch die Grundlagen lernen muss. Das kommt den Fortgeschrittenen wahrscheinlich zu einfach vor. Aber man muss eben erst mal die Grundlagen solide beherrschen. Aber ich habe den Fehler gemacht, dass ich zu einfache Codes gepostet habe. Ab jetzt kann ich die komplizierten nehmen.
 
BloodRocks schrieb:
Bei mir ist es so, dass ich noch die Grundlagen lernen muss. Das kommt den Fortgeschrittenen wahrscheinlich zu einfach vor.
Das hat damit nix zu tun. Nur ein Forum ist halt nicht dafür da ein Einstieg in die Programmierung zu vermitteln. Das ist eher ein Mittel wenns mal um ne ganz spezifische Frage geht.
Für Grundlagen ist das nicht der richtige Ort. Erstens gibts Seiten/Ressourcen die das wesentlich besser abdecken. Zweitens ist das ja auch eine Zeitfrage. Die Leute opfern hier halt Zeit, um dem Fragestellern zu helfen. Wenn da aber der Eindruck rüber kommt, derjenige ist zu faul sich sowas wie Grundlagen selbst anzueignen weils ja bequemer ist im Forum zu fragen und sich alles mundgerecht servieren zu lassen, dann stößt das halt verständlicherweise auf nicht allzu viel Gegenliebe.

Wenn dann noch Sätze fallen wie "für ein Buch hab ich keine Zeit" dann ermuntert das nicht gerade Dir zu helfen. Warum sollte jemand seine Zeit opfern Dir was beizubringen, wenn Du nicht mal bereit bist Deine Zeit zu opfern Dir gewisse Grundlagen anzueignen.
 
  • Gefällt mir
Reaktionen: mental.dIseASe
andy_m4 schrieb:
Wenn dann noch Sätze fallen wie "für ein Buch hab ich keine Zeit" dann ermuntert das nicht gerade Dir zu helfen. Warum sollte jemand seine Zeit opfern Dir was beizubringen, wenn Du nicht mal bereit bist Deine Zeit zu opfern Dir gewisse Grundlagen anzueignen
Ja, also, ich finde es besser, die Zeit für die Sololearn App zu verwenden. Wenn ich etwas nicht verstehe, suche ich es im Internet.
 
BloodRocks schrieb:
Ja, also, ich finde es besser, die Zeit für die Sololearn App zu verwenden.
Ich hab manchmal das Gefühl, lernen wird heutzutage als Entertainment begriffen. Wo alles hübsch und leicht zugänglich ist und wenn es das nicht ist, wird das nicht gemacht.
Nicht das Zugänglichkeit, Aufpeppen von Inhalten usw. grundsätzlich schlecht ist. Ich glaube aber nicht, das es durchgehend funktioniert. Ich glaube, das man zumindest ab und an auch sich auf den Hosenboden setzen und lernen und sich Dinge erarbeiten muss, um bestimmte Dinge zu verstehen und zu begreifen.
Kurzum: Man kommt auch hier und da um unangenehme Dinge nicht wirklich herum.

BloodRocks schrieb:
Wenn ich etwas nicht verstehe, suche ich es im Internet.
Ich frag mich ja manchmal, ob das wirklich effizienter ist als einfach mal Grundlagen zu büffeln. Wenn man so die Zeit aufrechnet die man so verwendet, um im Internet sich Informationen zusammenzukratzen (die oftmals nicht mal ordentlich aufbereitet und teilweise sogar fehlerhaft sind) oder sich in irgendwelchen Foren durchzufragen. Die ganzen Stunden, Tage, Wochen die dabei drauf gehen, die Zeit hätte man gut und gerne auch mal in ein Grundlagenstudium investieren können und würde nicht nur ein besseres Verständnis bekommen, sondern am Ende sogar deutlich Zeit sparen.

Mir ist klar, das dieser Weg nicht sonderlich attraktiv erscheint, da er vor allem beschwerlich wirkt ohne das man direkt und sofort davon profitiert (was interessiert mich was eine Methode ist oder welche Kontroll- und Datenstrukturen es gibt und wie man diese einsetzt; ich will das jetzt mein Code läuft!). Aber es ist halt auf mittlere und lange Sicht sehr viel effizienter.
 
andy_m4 schrieb:
Aber es ist halt auf mittlere und lange Sicht sehr viel effizienter.
Also ich finde die Sololearn App ziemlich effektiv.
andy_m4 schrieb:
Die ganzen Stunden, Tage, Wochen die dabei drauf gehen, die Zeit hätte man gut und gerne auch mal in ein Grundlagenstudium investieren können und würde nicht nur ein besseres Verständnis bekommen, sondern am Ende sogar deutlich Zeit sparen.
Man muss einfach nur wissen, wie man eine Suchmaschine verwendet.
andy_m4 schrieb:
Kurzum: Man kommt auch hier und da um unangenehme Dinge nicht wirklich herum.
Warum unterstellst du mir eigentlich, dass ich nur etwas mache, nur weil es Spaß macht?
DeepComputer schrieb:
Ansonsten tuts mir leid, dass du die schlechte Laune hier von manchen abgekriegt hat
Was soll's? Scheint irgendwie üblich zu sein.
Ergänzung ()

andy_m4 schrieb:
Wenn da aber der Eindruck rüber kommt, derjenige ist zu faul sich sowas wie Grundlagen selbst anzueignen weils ja bequemer ist im Forum zu fragen und sich alles mundgerecht servieren zu lassen, dann stößt das halt verständlicherweise auf nicht allzu viel Gegenliebe.
Also so, wie ich das sehe, wird hier niemand zu etwas gezwungen. Wenn jemand nicht antworten will, dann lässt er es einfach.
andy_m4 schrieb:
Warum sollte jemand seine Zeit opfern Dir was beizubringen, wenn Du nicht mal bereit bist Deine Zeit zu opfern Dir gewisse Grundlagen anzueignen.
Ich opfere sehr viel Zeit dafür, teilweise fast zu viel.
 
BloodRocks schrieb:
Also ich finde die Sololearn App ziemlich effektiv.
Es ist ziemlich schwierig die Effektivität von etwas zu beurteilen, wenn man sonst nicht viel kennt. Findest Du nicht? :-)

BloodRocks schrieb:
Man muss einfach nur wissen, wie man eine Suchmaschine verwendet.
Ich kann Dir die Antwort nicht mal verübeln, wenngleich ich sie nicht teile. Mir ist aber bewusst das dies der mangelnden Erfahrung geschuldet ist.
Ich bin mir nur nicht sicher, ob das Dir bewusst ist. Hier gibt es nun mal Leute die haben einen gewissen Erfahrungsschatz. Und eigentlich ist das doch auch der Grund, warum man in einem Forum fragt. Man möchte ja von dem Wissen und der Erfahrung anderer profitieren.
Das funktioniert aber halt nur, wenn man diese auch annimmt.
Das funktioniert eher nicht so gut, wenn man die ablehnt weil das vielleicht Antworten sind, die einem nicht gefallen. Nicht selten sind das aber auch Antworten die uns weiter bringen.

Das bedeutet nicht, das man allem was gesagt ist blind folgt und man alles unwidersprochen stehen lassen muss. Oder das man nicht trotzdem seinen eigenen Weg gehen kann.

Aber es gibt zwei Möglichkeiten wie man darauf antworten kann. Einmal halt so trotzig, wie Du es hier schön demonstrierst. Man könnte aber auch sowas sagen wie: "Hey. Ich bin zwar nicht Deiner Meinung, aber an dem was Du sagst könnte auch ein bisschen was dran sein und ich werde darüber nachdenken".

Musst Du aber letztlich selbst wissen, ob Du lieber in Deiner Trotzphase verharren und deine Opferrolle zelebrieren willst oder Dich weiter entwickeln.

BloodRocks schrieb:
Also so, wie ich das sehe, wird hier niemand zu etwas gezwungen. Wenn jemand nicht antworten will, dann lässt er es einfach.
Eigentlich ist das ein positives Signal. Wenn ich meinen Gegenüber für einen absoluten Idioten halte, dann antworte ich dem nicht weil ich weiß, es hat eh kein Sinn und es ist die reinste Zeitverschwendung.
Kommt dennoch eine Antwort bedeutet das umgekehrt, das man Hoffnung bei demjenigen hat und vielleicht doch noch positiv überrascht wird.

BloodRocks schrieb:
Ich opfere sehr viel Zeit dafür, teilweise fast zu viel.
Könnte ein Hinweis darauf sein, das Du die Zeit nicht sonderlich effektiv investierst. ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben