Erste Schritte Generelle Fragen zu Java / Greenfoot.

B

Brauche Hilfe

Gast
Hallo Community,

in der Schule haben wir vor einer Woche mit Greenfoot angefangen zu programmieren. Außerdem hat unser Lehrer uns einige Internetadressen ausgegeben mit denen wir arbeiten können.


Kaptitel 5.1
JAVA: 5.1 Klassen, Objekte und Referenzvariablen

Kapitel 6.1.1 - 6.1.4
JAVA: 6.1.1 Klassen deklarieren
JAVA: 6.1.2 Eigenschaften oder Attribute von Klassen
JAVA: 6.1.3 Methoden
JAVA: 6.1.4 Konstruktoren

Während ich mich also durch ein amerikanisches Tutorial und den oben angegeben Links geschlagen habe, bin ich auf einige Fragen gestoßen. Diese habe ich mir selbst beantwortet und möchte nun von euch wissen, ob ich diese Richtig beantwortet habe.

1. Zusammenhang Klasse <>Objekt

Nach der Klasse wird das Objekt gebaut, es ist sozusagen die Vorlage. Allerdings braucht man für die Interaktion beim objektorientiertem Programmieren die Objekt. Also schreibe ich alles was das Objekt machen soll in die Klasse. Also ist die Klasse sozusagen die Vorlage für das spätere Objekt. Wie z.B. ein Bauplan. Kann ich ein Objekt verändern, also mit Methoden belegen? Oder ist das nur in den Klassen möglich. Das würde ja wiederum heißen, dass Objekte einfach stupide Abbildungen einer Klasse sind die agieren. Also muss ein Objekt auch alle Methoden der Klasse besitzen?

2. Methoden
Methoden können also nur in der Klasse geschrieben werden. Es sind sozusagen die Befehle. Dabei kann man unterscheiden durch Rückgabetyp etc. Man kann sich auch in einer Methode auf eine andere Methode beziehen?

Was ist mit einem Referenztyp gemeint?

3. Static

Irgendwann bin ich auf den Befehlszusatz "Static" gestoßen. Den kann ich leider gar nicht einordnen?

4. Dot notation
Die Dot notation erlaubt das beziehen von Methoden aus anderen Klassen. Dadurch, dass zuerst klassenname(punkt)Methode geschrieben wird.

Würde mich über einige Antworten sehr freuen:)
Vielen Danke im Voraus!

LG
 

tuttle64

Bekanntes Mitglied
zu 1: Du kannst eine neue Klasse erzeugen, welches eine bestehende Klasse erbt. Deine Klasse hat nun die Methoden der Elternklasse geerbt. Deine Klasse kann bestehende Methoden der Elternklasse überschreiben oder ganz neue hinzufügen.

zu 2:Eine Methode kann sich auf eine andere beziehen. Ein Referenztyp ist eine Variable die auf ein Objekt verweist.

zu 3 gilt es zwischen Variablen und Methoden zu unterscheiden: Ist eine Variable static deklariert, dann gehört diese zur Klasse und wird darum auch Klassenvariable genannt. Eine statische Methode existiert auch ohne Klasse d.h. diese kann ohne Instantierung aufgerufen werden.

zu 4: Ja, das ist so wie Du beschreibst. Das ist insbesondere dann notwendig, wenn eine Methode in verschiedenen Klassen den gleichen Bezeichner hat. So wird klar, welche gemeint ist.
 
O

olllllliiii

Gast
Zu 1, was ist wenn ich allerdings nur ein Objekt der Klasse erstelle? Hat das Objekt dann alle Methoden der Klasse?
 
T

Tomate_Salat

Gast
Ja, das erstellte Objekt hat alle Methoden. Ob du diese alle Anwenden kannst, hängt von der Sichtbarkeit (public,protected,private) ab. Das Objekt besitzt ebenso die Methoden der Elternklasse. Mit denen hast du wahrscheinlich auch schon einigemal gearbeitet: [c]toString(),equals(...),...[/c] sind alles Methoden, die deine Klasse von java.lang.Object erbt, auch wenn du das nie explizit angegeben hast (Jede Klasse die du erstellt, erbt automatisch von java.lang.[japi]Object[/japi]).
 
Zuletzt bearbeitet von einem Moderator:
O

olllllliiii

Gast
Zu 3, gut eine Variable kann ja Static sein. Allerdings ein Methode? Wie ist das gemeint?
 

Cola_Colin

Top Contributor
zu 3 gilt es zwischen Variablen und Methoden zu unterscheiden: Ist eine Variable static deklariert, dann gehört diese zur Klasse und wird darum auch Klassenvariable genannt. Eine statische Methode existiert auch ohne Klasse d.h. diese kann ohne Instantierung aufgerufen werden.

Müsste es nicht eher heißen: Eine statische Methode existiert auch ohne Objekte ?
Jede Methode, auch statische, gehören zu einer Klasse.
Nur statische Methoden kann man direkt auf der Klasse aufrufen und sie können ausschließlich auf statische Variablen der Klasse zugreifen.
Nicht statische dagegen kann man nur auf Instanzen einer Klasse aufrufen, d.h. auf einem Objekt.
Diese können dann auch auf Felder der Klasse, also Variablen der Klasse, die nicht statisch sind, zugreifen.
 
T

Tomate_Salat

Gast
Dadurch brauchst du keine Instanz der Klasse um diese Methode aufzurufen (da sie eine Klassenmethode ist). Beispiel:
Java:
public class Demo {
     public static int add(int a, int b) {
         return a+b;
     }
}

diese Methode könntest du mit folgender Zeile aufrufen:
Java:
int ergebnis=Demo.add(2,4);

Allerdings hast du aus Methoden, die static sind, keinen (direkten) Zugriff auf non-static Variablen, da diese eine Referenz benötigen.
 
G

Gastredner

Gast
Man kann sich auch in einer Methode auf eine andere Methode beziehen?
Was meinst du mit "beziehen"? Methoden können durchaus andere Methoden aufrufen, wenn es das ist, was du meinst. Wenn du allerdings wissen willst, ob sich auch Methoden innerhalb von Methoden definieren lassen - nein, das geht nicht.

Zu 4: die Punktnotation erlaubt es dir generell, auf Eigenschaften einer anderen Klasse zuzugreifen (die korrekte Sichtbarkeit vorausgesetzt). Sowohl auf Methoden als auch Felder/Variablen lässt sich über die Punktnotation zugreifen:
Java:
public class Dummy() {

	public static final String SOME_CONSTANT = "Dummy";
	private static int idCounter = 0;

	public int id;
	private String something;

	/**
	 *	Konstruktor, dementsprechend KEIN Rückgabewert.
	 */
	public Dummy(String something) {
		this.id = ++idCounter;
		this.something = encode(something);
	}

	public String getSomething() {
		return something;
	}

	private String encode(String str) {
		// Irgendwelcher Code
	}

	public static boolean isValidSomething(String str) {
		// Irgendwelcher Code
	}
}

public class Showcase {

	public static void main(String[] args) {
		Dummy.SOME_CONSTANT;	// Korrekt, SOME_CONSTANT ist statisch (->keine Instanz nötig) und public (->öffentlicher Zugriff erlaubt).
		Dummy.idCounter;		// Compilerfehler, da idCounter private ist.
		
		Dummy.id;				// Compilerfehler, da id eine Instanzvariable ist und wir NICHT über eine Instanz, sondern die Klasse zugreifen.
		
		Dummy.isValidSomething("Hui");	// Korrekt, die Methode ist public und static, kann also OHNE Instanz der Klasse aufgerufen werden.
		
		Dummy dummyInstance = new Dummy("Hui");	// Instanz anlegen.
		dummyInstance.id;				// Korrekt, id ist eine Instanzvariable (->Instanz nötig) und public.
		dummyInstance.something;		// Compilerfehler, da private.
		
		dummyInstance.getSomething();	// Aufruf einer öffentlichen Methode, korrekt.
		dummyInstance.encode("Hui");	// Compilerfehler, da encode(String) private ist.
	}
}
 
Zuletzt bearbeitet von einem Moderator:

njans

Top Contributor
1. Zusammenhang Klasse <>Objekt

Nach der Klasse wird das Objekt gebaut, es ist sozusagen die Vorlage. Allerdings braucht man für die Interaktion beim objektorientiertem Programmieren die Objekt. Also schreibe ich alles was das Objekt machen soll in die Klasse. Also ist die Klasse sozusagen die Vorlage für das spätere Objekt. Wie z.B. ein Bauplan. Kann ich ein Objekt verändern, also mit Methoden belegen? Oder ist das nur in den Klassen möglich. Das würde ja wiederum heißen, dass Objekte einfach stupide Abbildungen einer Klasse sind die agieren. Also muss ein Objekt auch alle Methoden der Klasse besitzen?

2. Methoden
Methoden können also nur in der Klasse geschrieben werden. Es sind sozusagen die Befehle. Dabei kann man unterscheiden durch Rückgabetyp etc. Man kann sich auch in einer Methode auf eine andere Methode beziehen?

Was ist mit einem Referenztyp gemeint?

3. Static

Irgendwann bin ich auf den Befehlszusatz "Static" gestoßen. Den kann ich leider gar nicht einordnen?

4. Dot notation
Die Dot notation erlaubt das beziehen von Methoden aus anderen Klassen. Dadurch, dass zuerst klassenname(punkt)Methode geschrieben wird.

Würde mich über einige Antworten sehr freuen:)
Vielen Danke im Voraus!

LG

1. Wie du schon richtig angemerkt hast, ist die Klasse der Bauplan für das Objekt. Veränderungen von Methoden in diesen Objekten, aber nicht in der Klasse, sind nicht möglich. Ein Objekt besitzt immer alle Methoden der Klasse. Man muss an dieser Stelle vielleicht noch sagen, dass es bei der Klasse praktisch keine Grenzen gibt, wie diese auszusehen hat. Du kannst dort beliebig viele, komplexe, Methoden einbauen :)

2. Du kannst aus einer Methode alles aufrufen, was dies auch zulässt: Andere Methoden oder das Erstellen von Objekten. Das Programm wird nur durch Methoden gesteuert, denn da liegt ja der eigentliche Programmieraufwand drine ;)

2.1 Java ist ja OO. Dabei werden primitive typen (int, char, long, etc.) anders behandelt als Objekte.
Variablen haben auf Objekte immer nur eine Referenz im Speicher. Darum musst du dich nicht sonderlich kümmern, da Java das für dich macht, aber es ist wichtig zu wissen, dass zum Beispiel:
Java:
MeineKlasse m = new MaineKlasse();
MeineKlasse k = m;
durch das zuweisen von m auf k kein Objekt kopiert wird, sondern lediglich die Referenz übergeben wird. Dabei zeigen beide noch auf das selbe Objekt.

3. static bedeutet, dass von der Variable/Methode kein Objekt benötigt wird, um diese zu benutzen.
Wenn du eine Methode static deklarierst, dann kannst du diese Methode an der Klasse aufrufen, ohne ein Objekt davon zu erzeugen. Wenn du das mit einer Variable machst, haben alle Objekte einer Klasse alle diese Variable gemeinsam. Wenn ein Objekt diese verändert, dann ist sie für alle anderen auch verändert. So kann man zum Beispiel einen Zähler für Objekte bauen.

4. Ja das kann man damit machen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Generelle Frage zu Mikroservices (Spring Boot?), Docker... Java Basics - Anfänger-Themen 7
I REST Api / JAX-RS, Swagger (OpenAPI) - generelle Starthilfen benötigt Java Basics - Anfänger-Themen 15
A OOP Generelle Frage zu Objekten in Arrays Java Basics - Anfänger-Themen 14
G generelle Frage zu Strukturierung von Java-Programmen Java Basics - Anfänger-Themen 2
I Generelle Frage zu Interface Java Basics - Anfänger-Themen 3
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
H Fragen zu Wrapperklassen Java Basics - Anfänger-Themen 29
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
A Bei VierGewinnt fragen ob man gegen CPU oder Menschen spielen will. Java Basics - Anfänger-Themen 7
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
E Bäume/ allgemeine Fragen Java Basics - Anfänger-Themen 21
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
S Diverse Fragen vor Schulaufgabe ;) Java Basics - Anfänger-Themen 4
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
C 3 Fragen rund um Klassenattribute Java Basics - Anfänger-Themen 8
L Erste Schritte Log4J Fragen Java Basics - Anfänger-Themen 5
NeoLexx Fragen zu diversen Elementen der Javabibliothek Java Basics - Anfänger-Themen 5
D Budget Manager fragen zur Umsetzung Java Basics - Anfänger-Themen 9
N Fragen zur Datenspeicherung Java Basics - Anfänger-Themen 45
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
CT9288 Fragen zu Java Java Basics - Anfänger-Themen 16
W Fragen zu Generics Java Basics - Anfänger-Themen 14
T ObjectInput/OutputStream Fragen zur Funktionsweise Java Basics - Anfänger-Themen 3
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
H Java Quereinsteiger Roadmap und Fragen Java Basics - Anfänger-Themen 29
H fragen Java Basics - Anfänger-Themen 15
M Samelsarium Grundlegender Fragen 2 Java Basics - Anfänger-Themen 9
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
J Fragen zu synrchonized und kritischen Abschnitten Java Basics - Anfänger-Themen 5
S Fragen zu einem Rechentrainer Java Basics - Anfänger-Themen 2
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
D Fragen zur Klassen Java Basics - Anfänger-Themen 4
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
D Objekte-Fragen Java Basics - Anfänger-Themen 1
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Erste Schritte Fragen zur For-Schleife Java Basics - Anfänger-Themen 9
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
C Fragen zum Spigot Plugin (1.8) Java Basics - Anfänger-Themen 6
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
L fragen zu arrays Java Basics - Anfänger-Themen 8
L Fragen zu selbstgeschriebenem Programm Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
H grundlegende Fragen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
N Programm: Fragen beantworten Java Basics - Anfänger-Themen 6
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
D Rekursion Allgemeine Fragen Java Basics - Anfänger-Themen 2
D [Fragen] zu Methoden Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
J Allgemeine Fragen zur GUI Java Basics - Anfänger-Themen 1
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
DStrohma Grundsätzliche Fragen zu Drag & Drop Java Basics - Anfänger-Themen 1
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
T Fragen zu Set / Relationen verknüpfen Java Basics - Anfänger-Themen 4
S 2 Fragen Java Basics - Anfänger-Themen 4
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
N Java Fragen... Java Basics - Anfänger-Themen 10
F ExecutorService Fragen! Java Basics - Anfänger-Themen 2
O HashMap Fragen Java Basics - Anfänger-Themen 8
C Fragen zu Arrays Java Basics - Anfänger-Themen 19
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
S Fragen zur Implementierung eines Adressbuches Java Basics - Anfänger-Themen 20
S Fragen zu Arrays Java Basics - Anfänger-Themen 6
K Diverse Fragen zum Fehlerlogging Java Basics - Anfänger-Themen 9
N StringReader - Fragen Java Basics - Anfänger-Themen 8
C Einige Fragen zu Frames Java Basics - Anfänger-Themen 7
M Erste Schritte Allgemeine Fragen Java Basics - Anfänger-Themen 4
PaulG Fragen zu Binärbaum Java Basics - Anfänger-Themen 21

Ähnliche Java Themen

Neue Themen


Oben