# Hauptklasse: Ausführen einer Unterklasse?



## apfelkuchen (30. Mrz 2005)

wie kann ich in der main funktion eine unterklasse ausführen lassen? kann überhaupt eine andere klasse ausgeführt werden? 

bitte um eine schnelle und anfängerfreundliche antwort


----------



## bambi (30. Mrz 2005)

So etwa:


```
package Tests;

public class SubClass extends SuperClass
{
    public SubClass()
    {
        super();
    }
    
    public String doSomething()
    {
        return "SubClass did something";
    }
}
```


```
package Tests;

public class SuperClass
{
    public SuperClass()
    {
    }
    
    public String doSomething() {
        return "SuperClass did something";
    }

    public static void main(String[] args)
    {
        SuperClass superC = new SuperClass();
        System.out.println(superC.doSomething());
        
        SubClass subC = new SubClass();
        System.out.println(subC.doSomething());
    }
}
```
Ausgabe:

```
SuperClass did something
SubClass did something
```
Das ist ein ganz normaler Aufruf. Das geht mit jeder Klasse. Du kannst auch andere Klassen in anderen Methoden aufrufen u.s.w.


----------



## apfelkuchen (30. Mrz 2005)

ich muss ein programm mit 3 funktionen programmieren: suchen, löschen, auswerten (db-zugriff)... heisst das, dass ich diese 3 funktionen in eigene klassen packen muss... und wie funktioniert sowas? kommt ein menü in eine hauptklasse, und dann werden die unterklassen (suchen,lösche, ausw) aus der abgerufen? 

gibts da gescheite tuts? mfg aK


----------



## mic_checker (30. Mrz 2005)

Du musst nicht unbedingt 3 eigene Klassen dafür anlegen, kommt auf dein Programm drauf an.

Du könntest ja ein Menü ausgeben lassen, das dem User verschiedene Optionen lässt:
1) Datensatz suchen
2) Datensatz löschen
3) Datensatz auswählen
etc. pp.

Immer wieder anzeigen lassen bis der User es beenden will.


----------



## bambi (30. Mrz 2005)

Du musst da nicht unbedingt 3 Unterklassen schreiben. Wenn das nur diese 3 Methoden sind und die nicht zu lang sind. 

An Deiner Stelle wuerde ich eine Hauptklasse schreiben, die die ganze Steuerung uebernimmt und dann eine (oder 
mehrere) andere Klassen - das muessen/sollten keine Subklassen sein. Subklassen machen da wohl eher keinen Sinn.

Also einfach eine andere Klasse (im gleichen Package) schreiben, die dann die Logik uebernimmt und Deine Methoden
loeschen, suchen, auswerten implementiert...



> Kurzes Bsp einer sinnvollen Vererbung:
> Superklasse Auto: hat Attribute raeder, sitze, ps,...
> Subklasse Sportwagen (raeder=4, sitze=2,ps=500  :bae: ...)
> Subklasse SUV (raeder=4, sitze=6,ps=100...)



Falls Du sonst Probleme hast, dann kannst Du auf jeden Fall erst mal in Java ist auch eine Insel sehen. 
Da findest Du auch ganz sicher was zur Vererbung und Aufruf von Klassen, etc... Kann ich immer nur "waermstens empfehlen"  :wink:
[edit]Arghhh... zu spaet...[/edit]


----------



## apfelkuchen (30. Mrz 2005)

ok ich habe jetzt ein hauptproggi geschrieben, indem das ganze menü enthalten ist. mit swich cases usw... 

wenn jetzt ein user folgendes macht: suchen > suchen nach personen > suchen nach vornamen

Es soll also nach einem Vornamen in eine Sql datenbank gesucht werden.

diese Suchen Funktion pack ich in eine neue .java datei: suchen_vname.java

da programmiere ich die abfrage in sql und die ausgabe am bildschrim....

das sollte nicht so schwer sein... aber wie kann ich dem hauptprogramm sagen, dass er in die suchen_vname klasse einsteigen soll, und dort alles erledigen soll, und dannach soll er ins hauptprogramm zurück....


damit ist das hauptprogramm das main programm mit dem menü... was sind dann die anderen klassen (suchen, löschen.....)??? auch eigene main klassen oder wie?


----------



## KSG9|sebastian (30. Mrz 2005)

Warum willst du das Rad neu erfinden? MySQL hat ne Suchfunktion. Zudem solltest du dir mal die Grundlagen von OOP angucken! suchen_vname ist definitiv keine eigene Klasse.
Wenn überhaupt dann erstellst du dir ne "Suchen"-Klasse und packst dort die Methoden rein (sucheVorname, sucheNachname u.s.w.)


----------



## mic_checker (30. Mrz 2005)

apfelkuchen hat gesagt.:
			
		

> diese Suchen Funktion pack ich in eine neue .java datei: suchen_vname.java
> 
> da programmiere ich die abfrage in sql und die ausgabe am bildschrim....
> 
> das sollte nicht so schwer sein... aber wie kann ich dem hauptprogramm sagen, dass er in die suchen_vname klasse einsteigen soll, und dort alles erledigen soll, und dannach soll er ins hauptprogramm zurück....



Also wie gesagt solltest du keine extra Klasse "suchen_vname" anlegen, sondern wenn schon sowas wie "Suchen". Dann kannst du ein Objekt vom Typ "Suchen" erstellen und Methoden darauf aufrufen, wenn du das ganze in deinem Hauptprogramm aufrufst kommst du ja nachher zurück zum Menü....
Nur schätze ich nicht das es notwendig sein sollte drei extra Klassen für die Optionen anzulegen.



> damit ist das hauptprogramm das main programm mit dem menü... was sind dann die anderen klassen (suchen, löschen.....)??? auch eigene main klassen oder wie?


Da schmeisst du wohl gerade was durcheinander.
Du hast dein Hauptprogramm, in dem die main Methode steht, von diesem aus rufst du wahrscheinlich irgdeine Methode auf die ein Menü anzeigt und die Ausgaben auswertet (oder so ähnlich).
Dann hast du (weiss net genau wie dein Entwurf aussieht) noch drei Klassen, von denen du u.U. Objekte erzeugst. Das sind dann (in der Regel) "ganz normale" Klassen.


----------



## Guest (30. Mrz 2005)

> Das sind dann (in der Regel) "ganz normale" Klassen.




ok. gehören diese 3 ganz normale klassen in eigene .java files?

sorry für diese fragen, wie ihr erkennen könnt, bin ich ein ernstzunehmender anfänger...


----------



## mic_checker (30. Mrz 2005)

Du kannst diese in drei eigene .java files speichern. Die Frage ist natürlich ob du es wirklich so brauchst..(also drei eigene Klassen für die Funktionalität).


----------

