Erstmal finde ich es gut, dass ihr diese Videos macht. Da sich diese Reihe an Anfänger richtet würde ich eine folge zum Thema IDE machen. Zwischen IntelliJ und eclipse scheiden sich ja die Geister (auch wenn intellij besser ist :P)
Okok. Wir wissen nun, wie wir Java dazu bringen, in der Konsole etwas auszugeben, wie wir es wollen. Doch was bringt uns das? Wie können wir aus dem Code nun zum Beispiel Bild erstellen? Ich möchte versuchen ein Program zu schreiben, welches mir ein zufällig generiertes Labyrinth zeichnet... Aber woher kommen die Linien? Die Konsole gibt nur Text raus. Brauche ich dafür ein zusätzliches Programm? Und wie erstelle ich aus dem Code ein Programm welches ich vom Desktop aus starten kann? Das Java programmieren bringt mir ja sonst nicht viel oder?
Könnt ihr bitte im nächsten Tutorial erklären, welche Exportarten die wichtigsten sind und wozu man diese nutzt? Danke schonmal im vorraus kleiner als drei
Falls jemand von euch Probleme bekommen soll, weil da die Fehlermeldung steht: Fehler: Hauptmethode in Klasse String nicht gefunden. Definieren Sie die Hauptmethode als: public static void main(String[] args): oder eine JavaFX-Anwendung muss javafx.application.Application erweitern. Sollte einfach die Class bzw. die Klasse *nicht nach String benennen*, da es dann immer zu dieser Fehlermeldung kommt.
Sind das jetzt alle Java Grundlagen? Also, ich meine halt ob man nach diesem Tutorial mit dem Minecraft Spigot programmieren anfangen kann zu lernen. ps: ihr macht EEECCCHT gute Erklärungen. Ich habe das Tutorial jetzt zu ende geschaut und alles verstanden! DANKE! LG, ~Cookie
Nein das sind nicht alle Grundlagen. Gerade für aufwendigere Spigot Plugins (zb Minigames) wirst du noch mehr Wissen benötigen. Aber du kannst ja schonmal anfangen zu programmieren und wenn du auf ein Problem stößt im Internet nachsehen / nachfragen (zb stackoverflow.com).
Nur weil in 2 String variablen das selbe, in diesem fall "Moin" steht, heißt es nicht das sie auf das Selbe Object im Speicher Zeigen. Wenn dem So wäre könnte man Strings immer mit == vergleichen.
Nicht ganz richtig - in Java können nur primitive Datentypen und Enumerationen mit dem "==" Operator "verglichen" werden :) Strings sind Objekte, daher werden Übereinstimmungen mit equals(str: String): boolean überprüft. Der "==" Operator überprüft bei Objekten lediglich, ob diese die selbe Referenz aufweisen. Quelle: stackoverflow.com/a/513839/5943790 Eine Ausnahme davon bildet die switch-Anweisung: Bei dieser ist es (seit Java 7 meines Wissens nach) möglich, über eine vorgegebene Zeichenkette zu switchen wie über Zahlen oder Enumerationen.
Außerdem: Bei Strings ist das mehrfach-Referenzieren bei einer nicht-new Initialisierung definitiv der Fall, da diese interniert sind. Quellen und Erläuterung: en.wikipedia.org/wiki/String_interning stackoverflow.com/questions/15434070/if-i-have-2-reference-types-with-the-same-value-does-that-mean-only-1-object-i
Mal ne kleine Frage an hier vertretende Programmierer: In C++ (ja ich weiß, hier gehts um Java) gibt es ja auch diese Art von String. Aber Welche Verwendung/Bedeutung hat "String ^" in C++? Es scheinen 2 verschiedene Datentypen zu sein?
Strathus also ein String^ ist mir in C++ nicht geläufig. In C++ gibt es standardmäßig zwei Möglichkeiten mit Strings zu arbeiten: 1. Einfache char-Arrays: Bei diesen wird die zeichenkette direkt in ein Array gespeichert, wichtig bei diesen ist das am ende der Zeichenkette ein null-Character ist (0 als wert und nicht '0'). char text[] = "Text"; ist in C++ equivalent zu char text[] = { 'T', 'e', 'x', 't', 0 }; Diese sogenannte null-Terminierung ist wichtig, wenn man z.B. die strlen(char * str) Funktion aufrufen möchte, diese zählt nun alle Character bis zum null-Character und gibt diesen Wert zurück. Doch diese auch als C-Strings bekannten char-Arrays sind sehr unflexibel da man z.B. vorher eine maximale größe festlegen muss (man könnte zwar mit Heap-Char-Arrays auch zur Laufzeit die größe festlegen, macht es aber noch umständlicher, da man diese selber mit delete[] löschen muss). Noch dazu kann es zu dem altbekannten Stack-Overflow kommen wenn man über die größe des Arrays hinausschreibt. 2: std::string aus der STL Der std::string ist eine Klasse die intern auch nichts anderes als ein char Array beinhaltet, doch dieses liegt nicht auf dem Stack sondern ist ein dynamisch alloziertes auf dem Heap (Bsp. char * text = new char[10];), der nachteil von Heap-Variablen ist, dass man diese selber löschen muss (von smartptr mal abgesehen). Also die std::string Klasse hat nun intern ein char Array auf dem Heap-Speicher möchte man nun ein größeren String als die Länge des Arrays speichern fordert die std::string Klasse ein passendes Array an, speichert dort den neuen string hinein und löscht schließlich das alte Array. So ähnlich auch bei der verbindung mehrer Strings. Im Endeffekt lässt sich die std::string Klasse fast genauso einfach wie die String Klasse in Java benutzen (die std::string Klasse kann wegen Operator-Overloading strings auch mit == vergleichen und nicht so umständlich wie mit string.equals(String str) in Java, dafür muss man std::to_string aufrufen wenn man Zahlen in den String speichern will). Hoffe dieser kleine Einblick hilft :D Zusammen fassung std::string benutzen und wenn eine funktion einen char-Pointer haben will (char *) stringName.c_str() aufrufen dies gibt die Speicheraddresse des internen char-Arrays zurück. Sehr viele Winapi funktionen bei der Compiler einstellung auf Unicode einen wchar_t-Pointer haben entweder stellt man dies um oder man kann auch den std::wstring benutzen. Achso dieser will L"Text" als string haben, der unterschied zwischen char und wchar_t ist, dass wchar_t 2 Bytes für einen Character anstatt 1 Byte bei char zur Verfügung hat.
PeterSilie 24 Danke für die ausführliche Erklärung ^^ Aber ich habe vor kurzem in Visual Studio 2015 in mit einem Template gearbeitet in dem mein Programm ein einfaches Programmfenster hatte, das ich gestalten und coden konnte (mir ist der Name entfallen) Dort gab es auf jeden Fall den String^
Strathus hmm vieleicht hilft das msdn.microsoft.com/de-de/library/ms177218.aspx msdn.microsoft.com/de-de/library/ff429376.aspx Gehört wohl nicht zum c++ standard und ist eine erweiterung von c++ durch microsoft um in c++ die windows forms zuerverwenden.
3 роки тому
Klassennamen schreibt man groß, also besser „Strings“ statt „strings“.
Man kann so ziemlich alles machen, nur leider kommen hier sehr wenige Videos, was mir relativ wenig hilft da ich die Grundlagen schon lange kenne aber mehr über die "Experten"-Sachen wissen will.
Moin bin in der schule momentan am verzweifeln wir beschäftigen uns im moment mit LZW Kodierung wäre cool wenn ihr mal ein video darüber machen könntet
IINaNoXiDII ------------------- int Zufallszahl = Math.random() *10; System.out.println("Zahl zwischen 0 und 10: " + Zufallszahl); //Beispiel : //Console: "Zufallszahl zwischen 0 und 10: 3 ------------------- //"Zufallszahl" wird eine ganze Zahl zwischen 0 und 10 😉😁 (*10 weil Math.random() eine komma Zahl von 0 bis 1 ausgibt) Hoffe ich hab nichts übersehen ;)
Um genau zu sein erzeugt dir Math.random() eine Zufallszahl größer-gleich 0 und kleiner 1. Das heißt, du bekommst durch den einfachen Aufruf von Math.random() eine Zahl zwischen 0 und 0,9999..., wirst aber niemals die Zahl 1 erhalten. Wenn du also eine zufällige Zahl zwischen 1 und 10 haben möchtest, lautet der Aufruf wie folgt: int zufallsZahl = Math.random() * 10 + 1; Oder um die Formel zu verallgemeinern: int zufallsZahl = Math.random() * MAXIMUM + MINIMUM;
Alles was du hier siehst wird im jedem Spiel vorhanden sein. Ein Spiel wird nicht von einem Mann hergestellt. Da gibt es Grafikdesigner, Programmierer etc. die alle an einem Projekt arbeiten. Ich würde dir empfehlen dir erst mal eine Grundlegende Basis aufzubauen, bevor du an so etwas großes ran willst. Wenn du nicht gerade ein Text Adventure schreiben willst wird das ziemlich schwierig :/.
Hey ich habe ein Problem mit Minecraft kennt ihr euch da aus? :c In vielen Videos zeigen manche Yter wie man das problem "fixt" und zwar man geht auf task manager und fügt java eine andere prorität zu... Bei mir bringt es aber nichts Wenn ich eine andere Priorität zufüge... (Problem: Gib auf yt Minecraft sensivity Problem ein) Würde mich auf eine Antwort freuen :) Lg
Manche Leute unterscheiden zwischen Methoden und Funktionen bei Java, wobei Methoden objektbezogenes Verhalten und Funktionen klassenbezogenes Verhalten sind.
Methoden (auch Prozeduren genannt mit dem Rückgabetyp "void") liefern keine Rückgabewerte (bzw. eine leere Rückgabe aber nicht in dem Sinne "null") , Funktionen (mit Rückgabetyp und return Anweisung) aber liefern Rückgabewerte also ist es eine Funktion. ---------------------------------------------------------------- Objektbezogenes Verhalten können Methoden (Prozeduren) sowie auch Funktionen (Rückgabetyp und return Anweisung) aufweisen....Methoden/Funktionen die mit "static" deklariert sind gehören zu der Klasse somit auch zu allen Instanzen (Objekte) der Klasse
:D würden wir sehr gerne, aber irgendwie müssen wir das ganze ja bezahlen ;) schau dich aber gerne mal auf www.thesimleclub.de um. Da versuchen wir euch mit Übungsaufgaben noch besser zu unterstützen :)
Bitter
mehr! Das ist die beste Playlist um Java zu lernen wie Anfänger wie mich!
Danke
Ja, auch wie Anfänger wie mich! 👌
Wann kommen wieder Java Videos ?
Wir brauchen mehr Java videos!!! :D
könnt ihr mal nen video zu enums machen und wie man diese richtig benutzt/anwendet und wann diese nützlich sind? Danke im voraus :')
Ist notiert :)
Was würde ich ohne euch machen
Erstmal finde ich es gut, dass ihr diese Videos macht. Da sich diese Reihe an Anfänger richtet würde ich eine folge zum Thema IDE machen. Zwischen IntelliJ und eclipse scheiden sich ja die Geister (auch wenn intellij besser ist :P)
Du hier? xd LG TimChristopher
Kurz und verständlich erklärt 👍
Danke für dein Feedback :)
Bald HTML; CSS; PHP; JAVASCRIPT? :)
Ist notiert :)
Danke euch!
Okok. Wir wissen nun, wie wir Java dazu bringen, in der Konsole etwas auszugeben, wie wir es wollen. Doch was bringt uns das?
Wie können wir aus dem Code nun zum Beispiel Bild erstellen?
Ich möchte versuchen ein Program zu schreiben, welches mir ein zufällig generiertes Labyrinth zeichnet...
Aber woher kommen die Linien? Die Konsole gibt nur Text raus. Brauche ich dafür ein zusätzliches Programm? Und wie erstelle ich aus dem Code ein Programm welches ich vom Desktop aus starten kann?
Das Java programmieren bringt mir ja sonst nicht viel oder?
Diese Java-Videos sind echt genial um schnell ein Grundwissen zu erlangen.Top !
Könnt ihr bitte im nächsten Tutorial erklären, welche Exportarten die wichtigsten sind und wozu man diese nutzt?
Danke schonmal im vorraus kleiner als drei
Falls jemand von euch Probleme bekommen soll, weil da die Fehlermeldung steht: Fehler: Hauptmethode in Klasse String nicht gefunden. Definieren Sie die Hauptmethode als:
public static void main(String[] args):
oder eine JavaFX-Anwendung muss javafx.application.Application erweitern.
Sollte einfach die Class bzw. die Klasse *nicht nach String benennen*, da es dann immer zu dieser Fehlermeldung kommt.
Was kann man alles mit dem Studium Medieninformatik machen? Und ist der Studiengang sehr anspruchsvoll bzw. zeitaufwendig?
Sind das jetzt alle Java Grundlagen?
Also, ich meine halt ob man nach diesem Tutorial mit dem Minecraft Spigot programmieren anfangen kann zu lernen.
ps: ihr macht EEECCCHT gute Erklärungen. Ich habe das Tutorial jetzt zu ende geschaut und alles verstanden! DANKE!
LG,
~Cookie
Nein das sind nicht alle Grundlagen. Gerade für aufwendigere Spigot Plugins (zb Minigames) wirst du noch mehr Wissen benötigen. Aber du kannst ja schonmal anfangen zu programmieren und wenn du auf ein Problem stößt im Internet nachsehen / nachfragen (zb stackoverflow.com).
Müsste der Klassenname nicht groß geschrieben werden?
Wie macht man Buttons oder exportiert sein Progrmm oer Macht eine Benutzeroberfläche (mit Hintergrund)
Nur weil in 2 String variablen das selbe, in diesem fall "Moin" steht, heißt es nicht das sie auf das Selbe Object im Speicher Zeigen. Wenn dem So wäre könnte man Strings immer mit == vergleichen.
Nicht ganz richtig - in Java können nur primitive Datentypen und Enumerationen mit dem "==" Operator "verglichen" werden :) Strings sind Objekte, daher werden Übereinstimmungen mit equals(str: String): boolean überprüft.
Der "==" Operator überprüft bei Objekten lediglich, ob diese die selbe Referenz aufweisen.
Quelle: stackoverflow.com/a/513839/5943790
Eine Ausnahme davon bildet die switch-Anweisung: Bei dieser ist es (seit Java 7 meines Wissens nach) möglich, über eine vorgegebene Zeichenkette zu switchen wie über Zahlen oder Enumerationen.
Außerdem: Bei Strings ist das mehrfach-Referenzieren bei einer nicht-new Initialisierung definitiv der Fall, da diese interniert sind.
Quellen und Erläuterung:
en.wikipedia.org/wiki/String_interning
stackoverflow.com/questions/15434070/if-i-have-2-reference-types-with-the-same-value-does-that-mean-only-1-object-i
Wann wird die Playlist länger?
Könntet ihr ein Video mit dem Thema „Neuronale Netze“ machen?
ist notiert :)
Könntet ihr ein Video zu Assoziationen machen ? Wäre echt cool von euch. :)
Ist notiert :)
"Was dieser Punkt da verloren hat, werden wir noch früh genug herausfinden." 19.2.17
Wann ist "früh genug"? 21.10.19
^^
05.01.2021
mehr davon please
Geiles Video
Mal ne kleine Frage an hier vertretende Programmierer:
In C++ (ja ich weiß, hier gehts um Java) gibt es ja auch diese Art von String. Aber Welche Verwendung/Bedeutung hat "String ^" in C++? Es scheinen 2 verschiedene Datentypen zu sein?
Strathus Ich weiß es:
Frag google :O
Strathus also ein String^ ist mir in C++ nicht geläufig. In C++ gibt es standardmäßig zwei Möglichkeiten mit Strings zu arbeiten:
1. Einfache char-Arrays:
Bei diesen wird die zeichenkette direkt in ein Array gespeichert, wichtig bei diesen ist das am ende der Zeichenkette ein null-Character ist (0 als wert und nicht '0').
char text[] = "Text"; ist in C++ equivalent zu char text[] = { 'T', 'e', 'x', 't', 0 };
Diese sogenannte null-Terminierung ist wichtig, wenn man z.B. die strlen(char * str) Funktion aufrufen möchte, diese zählt nun alle Character bis zum null-Character und gibt diesen Wert zurück.
Doch diese auch als C-Strings bekannten char-Arrays sind sehr unflexibel da man z.B. vorher eine maximale größe festlegen muss (man könnte zwar mit Heap-Char-Arrays auch zur Laufzeit die größe festlegen, macht es aber noch umständlicher, da man diese selber mit delete[] löschen muss). Noch dazu kann es zu dem altbekannten Stack-Overflow kommen wenn man über die größe des Arrays hinausschreibt.
2: std::string aus der STL
Der std::string ist eine Klasse die intern auch nichts anderes als ein char Array beinhaltet, doch dieses liegt nicht auf dem Stack sondern ist ein dynamisch alloziertes auf dem Heap (Bsp. char * text = new char[10];), der nachteil von Heap-Variablen ist, dass man diese selber löschen muss (von smartptr mal abgesehen). Also die std::string Klasse hat nun intern ein char Array auf dem Heap-Speicher möchte man nun ein größeren String als die Länge des Arrays speichern fordert die std::string Klasse ein passendes Array an, speichert dort den neuen string hinein und löscht schließlich das alte Array.
So ähnlich auch bei der verbindung mehrer Strings.
Im Endeffekt lässt sich die std::string Klasse fast genauso einfach wie die String Klasse in Java benutzen (die std::string Klasse kann wegen Operator-Overloading strings auch mit == vergleichen und nicht so umständlich wie mit string.equals(String str) in Java, dafür muss man std::to_string aufrufen wenn man Zahlen in den String speichern will).
Hoffe dieser kleine Einblick hilft :D
Zusammen fassung std::string benutzen und wenn eine funktion einen char-Pointer haben will (char *) stringName.c_str() aufrufen dies gibt die Speicheraddresse des internen char-Arrays zurück. Sehr viele Winapi funktionen bei der Compiler einstellung auf Unicode einen wchar_t-Pointer haben entweder stellt man dies um oder man kann auch den std::wstring benutzen. Achso dieser will L"Text" als string haben, der unterschied zwischen char und wchar_t ist, dass wchar_t 2 Bytes für einen Character anstatt 1 Byte bei char zur Verfügung hat.
PeterSilie 24 Danke für die ausführliche Erklärung ^^ Aber ich habe vor kurzem in Visual Studio 2015 in mit einem Template gearbeitet in dem mein Programm ein einfaches Programmfenster hatte, das ich gestalten und coden konnte (mir ist der Name entfallen) Dort gab es auf jeden Fall den String^
Strathus hmm vieleicht hilft das
msdn.microsoft.com/de-de/library/ms177218.aspx
msdn.microsoft.com/de-de/library/ff429376.aspx
Gehört wohl nicht zum c++ standard und ist eine erweiterung von c++ durch microsoft um in c++ die windows forms zuerverwenden.
Klassennamen schreibt man groß, also besser „Strings“ statt „strings“.
Was kann man denn nun mit Java alles machen? Hab mir immerhin alle Videos bis jetzt angeschaut und nachgemacht :/
Man kann so ziemlich alles machen, nur leider kommen hier sehr wenige Videos, was mir relativ wenig hilft da ich die Grundlagen schon lange kenne aber mehr über die "Experten"-Sachen wissen will.
Moin bin in der schule momentan am verzweifeln wir beschäftigen uns im moment mit LZW Kodierung wäre cool wenn ihr mal ein video darüber machen könntet
Ist notiert :)
Euch müssen doch irgendwann die Notizzettel ausgehen xD Cooles Video!
ich wüsste gerne mal wie man eine variable durch das schreiben in die Console festlegt
Troteos Das Kannst du mit der Scanner Klasse machen.
Troteos Mit einem Scanner
xyz xyz Wie erstellt man eine Scannerklasse
Gib in Google ein JavaDoc und geh zur Scanner Klasse, dort steht alles was man wissen muss. Scanner name = new Scanner(System.in);
hesroc Danke euch 😉
Könntet ihr mal ein Video zu Zufallszahlen machen?
IINaNoXiDII
-------------------
int Zufallszahl = Math.random() *10;
System.out.println("Zahl zwischen 0 und 10: " + Zufallszahl);
//Beispiel :
//Console: "Zufallszahl zwischen 0 und 10: 3
-------------------
//"Zufallszahl" wird eine ganze Zahl zwischen 0 und 10 😉😁
(*10 weil Math.random() eine komma Zahl von 0 bis 1 ausgibt)
Hoffe ich hab nichts übersehen ;)
Um genau zu sein erzeugt dir Math.random() eine Zufallszahl größer-gleich 0 und kleiner 1. Das heißt, du bekommst durch den einfachen Aufruf von Math.random() eine Zahl zwischen 0 und 0,9999..., wirst aber niemals die Zahl 1 erhalten. Wenn du also eine zufällige Zahl zwischen 1 und 10 haben möchtest, lautet der Aufruf wie folgt:
int zufallsZahl = Math.random() * 10 + 1;
Oder um die Formel zu verallgemeinern:
int zufallsZahl = Math.random() * MAXIMUM + MINIMUM;
Das ist Folge 11 xD
könnt ihr mal Videos zum spielprogrammieren machen. wäre Mega cool
Machen die doch schon :)
Alles was du hier siehst wird im jedem Spiel vorhanden sein. Ein Spiel wird nicht von einem Mann hergestellt. Da gibt es Grafikdesigner, Programmierer etc. die alle an einem Projekt arbeiten. Ich würde dir empfehlen dir erst mal eine Grundlegende Basis aufzubauen, bevor du an so etwas großes ran willst. Wenn du nicht gerade ein Text Adventure schreiben willst wird das ziemlich schwierig :/.
Also für ein "Schere-Stein-Papier-Echse-Spock" - oder ein "Schiffe versenken" Spiel reichen die momentanen Skills :)
Ja aber noch ohne GUI :(
Konsolenanwendung
.printIn() und .length() werden Methoden genannt und nicht Funktion kannst du erkennen an den Klammern! MERKEN :)
ist doch das gleiche :)
Hey ich habe ein Problem mit Minecraft kennt ihr euch da aus? :c
In vielen Videos zeigen manche Yter wie man das problem "fixt" und zwar man geht auf task manager und fügt java eine andere prorität zu...
Bei mir bringt es aber nichts Wenn ich eine andere Priorität zufüge...
(Problem: Gib auf yt Minecraft sensivity Problem ein)
Würde mich auf eine Antwort freuen :) Lg
Wenn du ein Problem mit Minecraft allgemein hast, wäre es sinnvoll Mojang anzuschreiben.
kommt hier noch was? :( warte schon seit fast 10 monaten :/
length() ist keine Funktion sondern eine Methode!
Huntro in Java ist es das gleiche
Manche Leute unterscheiden zwischen Methoden und Funktionen bei Java, wobei Methoden objektbezogenes Verhalten und Funktionen klassenbezogenes Verhalten sind.
Methoden (auch Prozeduren genannt mit dem Rückgabetyp "void") liefern keine Rückgabewerte (bzw. eine leere Rückgabe aber nicht in dem Sinne "null") , Funktionen (mit Rückgabetyp und return Anweisung) aber liefern Rückgabewerte also ist es eine Funktion.
----------------------------------------------------------------
Objektbezogenes Verhalten können Methoden (Prozeduren) sowie auch Funktionen (Rückgabetyp und return Anweisung) aufweisen....Methoden/Funktionen die mit "static" deklariert sind gehören zu der Klasse somit auch zu allen Instanzen (Objekte) der Klasse
jaaa
Könnt Ihr bitte mehr Leute einstellen, damit Ihr mehr Videos produzieren könnt?
:D würden wir sehr gerne, aber irgendwie müssen wir das ganze ja bezahlen ;) schau dich aber gerne mal auf www.thesimleclub.de um. Da versuchen wir euch mit Übungsaufgaben noch besser zu unterstützen :)
TheSimpleInformatics kommt Ihr aus Köln, und feiert heute Karneval?
hauptsache nach der einen werbung eben kam dann ein anderes video -.-
Moin, wie genau meinst du das? :)
könntet ihr bitte mal ein Video zu SQL abfragen machen bitte XDXDXDXDXDXD
Jepp! Ist schon in Arbeit! Ein bisschen Geduld brauchst du aber leider noch ;)
TheSimpleInformatics echt danke danke danke👌👌👌
Wäre wirklich super!
1
Aha... Und diese Tutorials sollen zeigen wie man ein Programm schreibt?
wie meisnt du das, wir sollten das in informatik klasse angucken