Discuss Scratch
- Discussion Forums
- » Deutsch
- » Programmieren mit Java
- fixundlos
- Scratcher
100+ posts
Programmieren mit Java
Diese Topic soll zu folgenden zwecken dienen:
- Zur Algemeinen Unterhaltung über Java
Zum austauschen von Java-Codes
Zum Gegenseitigen helfen bei Problemen
und vielem mehr
- Kein Spam
Keine Unnötigen Beiträge
Bei der Sprache Java Bleiben (Vom Java abweichenden Themen die zum lösen des Problemes benötigt werden sind natürlich erlaubt)
- fixundlos
- Scratcher
100+ posts
Programmieren mit Java
Hier hätte ich gleich die erste Frage:
Was sind private Variablen? bzw. Was bringen sie?/für was werden sie benötigt?
Was sind private Variablen? bzw. Was bringen sie?/für was werden sie benötigt?
- fixundlos
- Scratcher
100+ posts
Programmieren mit Java
Hier ist ein Code zur Einlesung eines Wortes aus einer Tastatureingabe und der danachigen Ausgabe
import java.util.Scanner;
public class Main {
public static void main() {
Scanner scanner = new Scanner(System.in);
System.out.println(“Bitte gebe ein Wort ein”);
String wort = scanner.next();
System.out.println(“Sie haben das Wort” + wort + “eingegeben”);
}
}
import java.util.Scanner;
public class Main {
public static void main() {
Scanner scanner = new Scanner(System.in);
System.out.println(“Bitte gebe ein Wort ein”);
String wort = scanner.next();
System.out.println(“Sie haben das Wort” + wort + “eingegeben”);
}
}
Last edited by fixundlos (March 28, 2019 19:39:13)
- Isajah
- Scratcher
25 posts
Programmieren mit Java
das ist jetzt etwas allgemeingültig (ich programmiere kein java): auf Privat deklarierte Attribute hat man von außen keinen Zugriff.
Wenn man eine Klasse schreibt, weist man der Klasse Attribute zu. Attribute können recht einfache Variablen sein, die man ohne große Sorge manipulieren kann. es gibt aber Attribute, die entweder nur eine interne Funktion haben oder die nur über Methoden richtig beschrieben werden. Wenn man diese Attribute einfach beschreiben kann, wird es ggf für andere Methoden nicht mehr möglich ordentlich zu funktionieren.
In vielen Fachbüchern sieht man daher, dass Attribute lieber Private gesetzt werden und über sogenannte getter, setter Methoden beschrieben werden.
also kleine Methoden die den Einlesewert auf das Attribut schreiben. das wird oft als sauberer Programmierstil gesehen.
ein kleines Beispiel: die Klasse Vector hat die Attribute x,y und Länge.
während es relativ unproblematisch ist my_vec.x = 10 zu schreiben. macht es wenig Sinn my_vec.len zu beschreiben.
besser ist eine Methode get_len() zu definieren, die sqrt(x*x+y*y) als returnwert zurück gibt.
len = my_vec.len() bekommt dann die richtige Länge des Vektors zurück.
genauso kannst du eine Methode definieren die z.B. set_len_fixed_x(len, x) heißt und dir damit das korrekte y ermitteln lassen.
ich hoffe das war jetzt nicht noch verwirrender
Wenn man eine Klasse schreibt, weist man der Klasse Attribute zu. Attribute können recht einfache Variablen sein, die man ohne große Sorge manipulieren kann. es gibt aber Attribute, die entweder nur eine interne Funktion haben oder die nur über Methoden richtig beschrieben werden. Wenn man diese Attribute einfach beschreiben kann, wird es ggf für andere Methoden nicht mehr möglich ordentlich zu funktionieren.
In vielen Fachbüchern sieht man daher, dass Attribute lieber Private gesetzt werden und über sogenannte getter, setter Methoden beschrieben werden.
also kleine Methoden die den Einlesewert auf das Attribut schreiben. das wird oft als sauberer Programmierstil gesehen.
ein kleines Beispiel: die Klasse Vector hat die Attribute x,y und Länge.
während es relativ unproblematisch ist my_vec.x = 10 zu schreiben. macht es wenig Sinn my_vec.len zu beschreiben.
besser ist eine Methode get_len() zu definieren, die sqrt(x*x+y*y) als returnwert zurück gibt.
len = my_vec.len() bekommt dann die richtige Länge des Vektors zurück.
genauso kannst du eine Methode definieren die z.B. set_len_fixed_x(len, x) heißt und dir damit das korrekte y ermitteln lassen.
ich hoffe das war jetzt nicht noch verwirrender
- fixundlos
- Scratcher
100+ posts
Programmieren mit Java
Das beispiel hab ich nicht verstanden.
auf Privat deklarierte Attribute hat man von außen keinen Zugriff.Was meinst du mit Außen?
Last edited by fixundlos (March 29, 2019 06:13:45)
- Isajah
- Scratcher
25 posts
Programmieren mit Java
Du schreibst eine Bibliothek, darin gibt es die Klasse Schüler.
Ich nehme die Bibliothek
Ich Erstelle die Schüler Tim, Tom, Marie und Lisa.
Ich weise Tim seine Noten zu:
Tim.Mathe = 2; Tim.Deutsch = 3; Tim.Sport = 1; Tim.Heimatkunde = 2;
Wie beschreibe ich die Durchschnittsnote von Tim ? Tim.Durchschnitt = ?? wäre ja blöd. das wollen wir vermeiden, weil der Durchschnitt dann falsch sein könnte. also brauchen wir eine Methode :
def Schüler.Berechne_Durchschnitt()
durchschnitt = (Mathe + Deutsch + Sport + Heimatkunde) / 4
return durchschnitt
wenn ich dann den durchschnitt haben will, rufe ich für Tim die Methode Tim.Durchschnitt() auf.
Ich nehme die Bibliothek
Ich Erstelle die Schüler Tim, Tom, Marie und Lisa.
Ich weise Tim seine Noten zu:
Tim.Mathe = 2; Tim.Deutsch = 3; Tim.Sport = 1; Tim.Heimatkunde = 2;
Wie beschreibe ich die Durchschnittsnote von Tim ? Tim.Durchschnitt = ?? wäre ja blöd. das wollen wir vermeiden, weil der Durchschnitt dann falsch sein könnte. also brauchen wir eine Methode :
def Schüler.Berechne_Durchschnitt()
durchschnitt = (Mathe + Deutsch + Sport + Heimatkunde) / 4
return durchschnitt
wenn ich dann den durchschnitt haben will, rufe ich für Tim die Methode Tim.Durchschnitt() auf.
- fixundlos
- Scratcher
100+ posts
Programmieren mit Java
Hä?
Und was meinst du mit jetzt von Außen keinen Zugriff?
Programmierst du mit Javascript?
Und was meinst du mit jetzt von Außen keinen Zugriff?
Programmierst du mit Javascript?
- fixundlos
- Scratcher
100+ posts
Programmieren mit Java
Kann man auch z.B:
public int beispiel = 2;
machen?
public int beispiel = 2;
machen?
- Isajah
- Scratcher
25 posts
Programmieren mit Java
Ich programmiere C, C++, C#, Python, Diverse SPS/PLC Sprachen und wofür gerade Bedarf besteht. alles ein bisschen halt.
Warum man Variablen Public oder Private setzt, hat ja was mit dem Zugriff zu tun. Variablen, die Private sind, sind Zugriffsgeschützt.
Also wenn du eine Klasse schreibst, setzt du Variablen der Klasse (Attribute) auf private, die du nur innerhalb deiner Klasse verwendest/beschreibst.
Wenn du mir dann z.b. deine Bibliothek gibst und ich mache mir in meinem Script ein paar Objekte aus deiner Klasse, darf ich private Variablen der Objekte nicht verwenden (von meinem Script aus, programmiere ich ja nicht innerhalb deiner klasse, bin also außerhalb deiner klasse). dann meckert der Compiler/Interpreter mit mir.
Ich weiß nicht so recht, wie ich es noch erklären soll.
Vielleicht kannst du ja mal sagen, wie dein Kenntnisstand ist. Ich weiß gerade nicht so richtig wie ich ansetzen soll
Warum man Variablen Public oder Private setzt, hat ja was mit dem Zugriff zu tun. Variablen, die Private sind, sind Zugriffsgeschützt.
Also wenn du eine Klasse schreibst, setzt du Variablen der Klasse (Attribute) auf private, die du nur innerhalb deiner Klasse verwendest/beschreibst.
Wenn du mir dann z.b. deine Bibliothek gibst und ich mache mir in meinem Script ein paar Objekte aus deiner Klasse, darf ich private Variablen der Objekte nicht verwenden (von meinem Script aus, programmiere ich ja nicht innerhalb deiner klasse, bin also außerhalb deiner klasse). dann meckert der Compiler/Interpreter mit mir.
Ich weiß nicht so recht, wie ich es noch erklären soll.
Vielleicht kannst du ja mal sagen, wie dein Kenntnisstand ist. Ich weiß gerade nicht so richtig wie ich ansetzen soll
- fixundlos
- Scratcher
100+ posts
Programmieren mit Java
Danke ich glaub ich habe es verstanden.
Wenn ich eine Variable private erstelle mit:private int normal = 12; in der Klasse Privat. Kann ich nur in der Klasse Privat mit der Variable arbeiten.
Bei Public kann ich sie über allle Klassen Bearbeiten.
Beim der ganz normalen Variable kann man sie auch über eine andere Klasse lesen aber nicht bearbeitbar(Mann kann die Werte übergeben).
Zu meinen Java-Kenntnissen:
Ich weiß wie man Variablen, Klassen, Methoden und Objekte erstellt
Ich weiß wie man Tastatureingaben einließt
Ich weiß wie man Packages importiert und benutzt
Ich weiß wie man Konsolenausgaben macht
Ich weiß wie FileWriter bzw. FileReader aus java.io.*; funktionieren
Ich weiß was Math.sqrt usw. ist
Ich Weiß wie man ein Programm beendet
Programmiert habe ich bereits folgendes mit Java(Konsolenprogramm):
Taschenrechner, Dateiersteller, LoginSystem
Wenn ich eine Variable private erstelle mit:private int normal = 12; in der Klasse Privat. Kann ich nur in der Klasse Privat mit der Variable arbeiten.
Bei Public kann ich sie über allle Klassen Bearbeiten.
Beim der ganz normalen Variable kann man sie auch über eine andere Klasse lesen aber nicht bearbeitbar(Mann kann die Werte übergeben).
Zu meinen Java-Kenntnissen:
Ich weiß wie man Variablen, Klassen, Methoden und Objekte erstellt
Ich weiß wie man Tastatureingaben einließt
Ich weiß wie man Packages importiert und benutzt
Ich weiß wie man Konsolenausgaben macht
Ich weiß wie FileWriter bzw. FileReader aus java.io.*; funktionieren
Ich weiß was Math.sqrt usw. ist
Ich Weiß wie man ein Programm beendet
Programmiert habe ich bereits folgendes mit Java(Konsolenprogramm):
Taschenrechner, Dateiersteller, LoginSystem
- M_S_72
- Scratcher
76 posts
Programmieren mit Java
Übrigens, man kann [code]-Tags benutzen, um Code zu schreiben:
public static void main(String[] args) { System.out.println("Hello world!"); }
[M_S_72 | Platformer | Text Engine | Zigzag | Gravity | ☁ Cloud Chat | Obstacles | Die 3 Besten Projekte - Nachrichten]
Ich habe eine Erweiterung für Scratch 3.0 gemacht!
I made a Scratch 3.0 extension!
Probier es aus! / Try it!
- M_S_72
- Scratcher
76 posts
Programmieren mit Java
Mit „package name.des.pakets;“ am Anfang der Java-Datei. Wie erstelle ich ein eigenes Packet
[M_S_72 | Platformer | Text Engine | Zigzag | Gravity | ☁ Cloud Chat | Obstacles | Die 3 Besten Projekte - Nachrichten]
Ich habe eine Erweiterung für Scratch 3.0 gemacht!
I made a Scratch 3.0 extension!
Probier es aus! / Try it!
- Discussion Forums
- » Deutsch
- » Programmieren mit Java