Ich hab ja grad nix besseres zu tun (das heißt eigentlich schon aber dazu bin ich zu faul) und auch wenn es niemanden interessiert, tu ich ein bisschen mein Wissen teilen und schreib hier ein bisschen wie man so in Java programmiert. Ich denke mal das das nicht sooo uninteressant ist...
also Java ist eine Programmiersprache mit der man programmieren kann (welch wunder). Ich erkläre euch hier wie man Klassen schreibt. Eine Klasse ist so etwas wie eine Beschreibung eines Objektes - einer Instanz. Man könnte das so ausdrücken, dass man mit Java - mit Klassen - Objekte aus dem realen Leben darstellen kann. Ganz genau so ist es nicht, aber es ist ein einfaches Grundkonzept. Also eine Klasse könnte zum Beispiel sein: "Auto". Und dieses Auto hat dann Attribute - Eigenschaften. Wie zum Beispiel "Farbe", "Geschwindigkeit", "Firma", "Modell" usw. Und das Auto kann auch was machen z.B. fahren, tanken, scheiben wischen usw. So etwas in der Art kann man tatsächlich irgendwie darstellen.
Also wenn ihr programmieren wollt, braucht ihr erst mal ein Programm dafür. Wir benutzen dafür "Blue J". Dieses könnt ihr
hier downloaden. Und übrigens braucht ihr logischerweise die Java Virtual Machine am Computer. Die haben die meisten Leute eh, solltet ihr sie nicht haben schaut mal
hier nach.
Also wenn ihr BlueJ installiert habt schaut einfach mal rein. Es sollte so aussehen:

Um ein neues Projekt zu machen klickt auf Projekt→Neues Projekt (nennt es mal "Person").
Ein Fenster öffnet sich, indem ihr auswählt wo die Datei hingespeichert werden soll. BlueJ speichert nämlich automatisch.
Übrigens wird das Projekt nicht als einzlene Datei gespeichert sondern es wird in einem eigenen Ordner angelegt, indem alle Dateien des Projektes drinnen sind.
Also wenn ihr ein neues Projekt erstellt habt erscheint ein kleines Blatt-Symbol. Wenn ihr darauf klickt, könnt ihr die Readme-Datei - die Anleitung - bearbeiten, das ist jetzt aber unwichtig. Was wir mal wollen ist eine Klasse namens "Person".
Also klickt auf "Neue Klasse". Gebt den Klassennamen "Person" ein und die Art der Klasse soll nur "Klasse" sein. Danach klickt auf ok. Ein kleines orangenes Kasterl erscheint. Dieses stellt die Klasse "Person" da. Bevor wir richtig beginnen, überlegen wir mal, was die Klasse alles haben soll.
Sie soll folgende Atribute haben:
Und sie soll Methoden haben, das heißt etwas was man mit der Klasse machen kann bzw. was sie selbst macht.
Diese sollen sein:
- getName
- setName
- getAlter
- setAlter
- getVerheiratet
- setVerheiratet
Die Methode "getName" soll den Namen anzeigen, die Methode "setName" soll den Namen ändern können.
Das gleiche gilt für die anderen Methoden.
Da wir uns das nun überlegt haben, können wir doppelt auf die Klasse klicken:

Es steht bereits etwas in dieser Klasse, nämlich eine einfache Beispielklasse, die eigentlich nur 0 mit einem eingegebenen Wert addieren würde, aber das brauchen wir jetzt nicht. Löschen wir soviel raus, dass nur noch das hier dasteht:
/**
* Beschreiben Sie hier die Klasse Person.
*
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Person
{
}
|
Die ersten paar Sachen (die mit *) wären nicht nötig, aber sie sind einfach ganz nett anzuschauen^^.
Auf was wir uns mal konzentrieren ist das "public class Person".
"public" bedeutet dass die Klasse öffentlich zugänglich ist und jeder darauf zugreifen kann.
"class" sagt einfach, dass das eine Klasse ist und
"Person" ist der Name der Klasse.
Alles was nun zwischen den beiden Klammern steht gehört zu der Klasse.
Das erste was wir reinschreiben sind die Atrribute (ich probiere die Farben von BlueJ nachzubilden):
public class Person {
private String name; private int alter; private boolean verheiratet; }
|
(Wichtig: name, alter, verheiratet werden klein geschrieben. Achtet außerdem auf die Strichpunkte zum Schluss)
"private" heißt, dass die Attribute nicht von außen zugänglich sind, sonst könnte jeder was in sie reinschreiben und das wollen wir in diesem Fall nicht. Bei Attributen könnte man das "private" auch weglassen, da wenn nichts dabei steht, sie automatisch private sind (und nicht public!).
Nach dem "private" folgt jeweils ein anderes Wort, dass den Datentyp des Attributes angibt.
"String" bedeutet, dass "name" eine Zeichenkette ist. Im Gegensatz zu "int" und "boolean" ist "String" jedoch eine eigene Klasse, deswegen ist sie auch großgeschrieben und nicht rot. Das kann uns immoment aber relativ egal sein.
"int" heißt, dass "alter" eine ganzzahlige Zahl ist, wie z.B. 1, 5, 8, -29...
Es können auch Minuszahlen sein, aber keine Kommazahlen.
"boolean" bedeutet, dass "verheiratet" nur einen von zwei Werten haben kann: "true" oder "false".
Man könnte den Attributen übrigens auch gleich Werte zuweißen, das sähe dann so aus:
Das machen wir jetzt aber nicht.
Das was wir als nächstes schreiben müssen ist der so genannte "Konstruktor". Er erzeugt bei Aufruf ein Objekt (so wie es in der Klasse beschrieben wird). Außerdem setzt er meistens die Attribute auf gute Werte. Schreiben wir also:
public class Person {
private String name; private int alter; private boolean verheiratet; public Person () {
name = "Johannes"; alter = 38; verheiratet = true; } } |
(Übrigens sind die Einrückungen nicht nötig, aber so wird es übersichtlicher)
Nach Anwendungen des Konstruktors existiert also ein Objekt "Person" und der Name der Person ist Johannes, er ist 38 Jahre alt und er ist verheiratet. Gehen wir das mal genau durch.
Es ist wichtig, dass der Kunstruktor genau so heißt wie die Klasse selber also "Person".
Die leeren Klammern dahinter sagen, dass es keinen Übergabeparameter (dazu komm ich später) gibt, das heißt, dass der Benutzer bei Aufruf des Kunstruktors nichts eingeben muss.
Johannes ist in Anführungszeichen geschrieben, dies muss bei Strings immer so sein.
Nachdem wir damit fertig sind, probieren wir das mal aus. Klickt oben links im Fenster auf "Übersetzen". Wenn ihr alles richtig gemacht habt, steht unten jetzt "Klasse übersetzt - keine Syntaxfehler", ansonsten erscheint eine Meldung, dass es einen Syntaxfehler (Syntax = so etwas wie Grammatik in deutsch nur in Java) gibt, den ihr dann suchen müsst. Häufige Fehler sind vergessene Klammern oder Strichpunkte... Manchmal auch Rechtschreibfehler.
Also wenn ihr richtig übersetzt habt, geht zurück ins Hauptfenster und klickt mit der rechten Maustaste auf die Klasse. Als erstes sollte im Menü dort stehen "new Person()". Wen ihr darauf klickt, betätigt ihr den Kunstruktor. Ihr müsst den Namen der Instanz - des Objektes - eingeben. Nimmt am besten "person1", was eh schon da steht. Und tatsächlich erscheint unten ein kleines rotes Kästchen. Wenn ihr darauf mit der rechten Maustaste klickt, steht höchstwahrscheinlich da: "
(keine zugreifebaren Methoden)". Logisch, wir haben ja noch keine Methoden geschrieben. Darunter steht "Inspizieren" und "Entfernen". Wenn ihr auf Inspizieren geht öffnet sich ein kleines Fenster:

Hier werden alle Attribute der Klasse "Person" und deren aktuellen Werte angezeigt. Wie wir sehen, wurde tatsächlich allen Attributen im Konstruktor ein passender Wert zugewiesen. Dies müsste eigentlich nicht umbedingt sein. Man könnte auch so einen Konstruktor schreiben:
(es würde das gleiche sein, wie wenn man keinen Konstrukot schreiben würde - ich glaube es gäbe trotzdem einen automatisch)
Dann würde auch ein Objekt erscheinen:

In Java werden den Attributen dann schon Werte gegeben, aber in anderen Sprachen ist das nicht so und es kann zu Fehlern führen, wenn man den Attributen nicht selber einen Wert zuweißt.
Übrigens: Beim Namen steht null ohne Anführungzeichen. Was das bedeutet, möchte ich jetzt nicht erklären, da dass jetzt zu kompliziert wär.
Also bis jetzt sollte euer Quellcode in der Klasse "Person" so aussehen:
/** * Beschreiben Sie hier die Klasse Person. * * @author (Ihr Name) * @version (eine Versionsnummer oder ein Datum) */ public class Person {
private String name; private int alter; private boolean verheiratet; public Person () {
name = "Johannes"; alter = 38; verheiratet = true; } }
|
Die Methoden machen wir ein anderes mal, aber nur wenn ihr wollt.