Was sind Klassen, Objekte und Methoden in Java?

...komplette Frage anzeigen

3 Antworten

Das ist ein bisschen schwierig in eigene Worte zu fassen, aber ich probiere es mal.

Eine Klasse ist sowas wie ein Muster. Stellen wir uns spaßeshalber mal eine Klasse namens "Auto" vor. In der Klasse kannst du festlegen, welche Attribute und Methoden Autos haben. 

Attribute sind sowas wie Variablen (beim Auto z.B. Farbe, Länge, Breite, Höhe, Leistung, Hersteller, Typ etc.). 

Methoden sind sowas wie Funktionen oder Prozeduren (beim Auto z.B. oeffnen(), schliessen(), anlassen(), blinken() etc.)

Objekte nenne ich selber immer Instanzen einer Klasse. Also wenn du die Klasse "Auto" fertig gebaut hast, kannst du in einer anderen Klasse Objekte vom Typ "Auto" erstellen.

Auto mamasFlitzer = new Auto();

Dadurch hast du ein Objekt namens "mamasFlitzer", bei dem du jetzt die Attribute einstellen kannst oder Methoden aufrufen kannst

mamasFlitzer.farbe = Color.RED; (Achtung, schlechter Stil, normalerweise baut man für sowas noch die Methoden getFarbe() und setFarbe() und greift nicht direkt auf die Attribute zu)
mamasFlitzer.oeffnen();

Das, was du noch geschrieben hast mit "mehrere Methoden in der Klasse haben den selben namen, wie die Klasse aber mit unterschiedlichen Parametern", sind keine Methoden, sondern Konstruktoren. Damit kannst du festlegen, was passieren soll, wenn eine neue Instanz der Klasse erzeugt wird. Beispielsweise kannst du einen Konstruktor bauen, der die Attribute "Hersteller", "Typ" und "Farbe" beim instanzieren der Klasse gleich festlegt.

Auto papasSchlitten = new Auto("Nissan", "GT-R", Color.BLACK);

Der Unterschied zwischen Funktionen und Methoden ist, dass Methoden immer zu einer Instanz einer Klasse gehören (z.B. papasSchlitten.anlassen();) und Funktionen halt eigenständige Programmschnipsel sind, die ohne Klasse funktionieren (in Java fällt mir da gar kein Beispiel zu ein, aber z.B. wenn du Excel die Formel =FINDEN("Bla", A1) eingibst, dann ist das eine Funktion, weil es halt ohne Klasse oder Objekt aufgerufen werden kann und ein Ergebnis zurückgibt.

Ich hoffe mal, ich hab das halbwegs verständlich erklärt. Wenn nicht, einfach nochmal fragen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von precursor
15.09.2016, 16:12

Recht herzlichen Dank für deine Antwort !

1

Unter einem Objekt X der Klasse K versteht man Speicherplatz,

  • dessen Struktur und Größe durch K definiert ist
  • und dem Methoden zugeordnet sind, welche implementiert sind entweder in der Klasse K selbst oder in einer Klasse, von der K erbt.

Man spricht hier von Methoden (statt von Funktionen), da jede Methode über ihre explizit genannten Parameter hinaus noch einen zusätzlichen weiteren Parameter hat:  Er ist das Objekt, dem sie beim Aufruf zugeordnet ist.

Lies bitte auch

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von precursor
15.09.2016, 19:39

Ok, ich verstehe deine Antwort zwar beim ersten Lesen nicht, aber ich werde mir die Links, die du beigefügt hast, durchlesen.

Vielen Dank für deine Antwort !

0

Methode ist kein blödes Wort, ist sicherlich nicht blöder als Prozedur ;)

objektorientierte Programmierung meint, dass man Objekte erstellen kann, z.B:

public class Mensch(){
   private String name;
   private int alter;

   public Mensch(String n, int a){
     this.name = n;
     this.alter = a;

   public void setAlter(int a){
     this.alter = a;
   }

   public String getName(){
     return name;
   }

   public int getAlter(){
     return alter;
   }
}

von diesem Menschen kann man dann ein Objekt bzw. eine Instanz erzeugen
mittels Mensch thomas = new Mensch("Thomas",21);

und dieser thomas verfügt dann über die Werte alter und name, wobei man durch das Keywort private nicht direkt auf seinen Namen zugreifen kann, 
man kann also nicht thomas.name = "Max" machen, 

jedoch kann man durch den getter getName den Namen von thomas herausfinden

gäbe es diese Objektorientierung nicht müsste man für jeden Menschen alle Werte erzeugen, was z.B. so aussehen würde 

...in der main-Methode

String thomasName = "Thomas"
int thomasAlter = 21;

String lukasName = "Lukas"
int lukasAlter = 10;

was wenn du 100 Menschen hast ziemlich unübersichtlich wird

außerdem gibt es durch die Objektorient. den Vorteil der Vererbung (googln^^)


man erzeugt also Objekte, zum Beispiel ein Auto, ein Haus, einen Menschen usw. usf.  und mit denen kann man dann viel viel besser Arbeiten


man kann auch static Methoden erstellen, die benötigen kein Objekt um zu funktionieren 








Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von precursor
15.09.2016, 15:50

Vielen Dank für deine Antwort, ich werde über das geschriebene nachdenken.

0

Was möchtest Du wissen?