Einige Anfängerfragen

jule1309

Neues Mitglied
Hallo Community,

Ich bin eine totale Einsteigerin in Java, wir lernen es derzeit in der Schule und bei einigen Sachen häng ich einfach, da ich die Einzige ohne Vorkenntnisse bin und der Lehrer darauf nicht wirklich eingeht.

1) Wann/Für was brauche ich einen Default Konstrukor?
2) In den Default Konstruktor schreibe ich ja die Standarwerte (also Angaben vom Lehrer) hinein wie:
setpsanzahl(100);
Dann gibt er aber noch an, dass die PS-Anzahl zwischen 50 und 200 PS ist. Diesen muss ich ja dann in der Set-Methode mittels if-Funktion angeben - wieso gebe ich dann aber einen Standardwert in den Default Konstruktor ein???
3) /* Aufgaben:
* 1.) Methode ... getVorname .... liefert aus der Eigenschaft
* Name den Vornamen
* ("Kaiser Peter")
* 2.) Methode ... getFamilienname
* 3.) Methode ... getInitialen
* 4.) Methode ... getNameVerkuerzt ... vom Vornamen wird
* nur Anfangsbuchstabe und . geliefert
* (z.B. "Kaiser P.")
* 5.) Methode ... getGrossbuchstabenInFamnam .....
* (z.B. "KAISER Peter")*/

Wie sollen diese Methoden ausschauen? public void getFamilienname() …. und dann???


Hier das Beispiel zur Hilfe:

Java:
public class Schueler
{
    private String name;    // name hat mindestens 2 Zeichen
    private int nummer;     // nummer ist postiv, >0
    private boolean maennlich;  //true oder false

    //Konstruktor
    
    public Schueler()  //Default Konstruktor
    {
        //name= "N.N.";
        //besser wäre
        setName("N.N");
    }
    
    public Schueler(String pName, int pNummer, boolean pMaennlich)
    {
        setName(pName);
        setNummer(pNummer);
        setMaennlich(pMaennlich);
    }
    
    //get Methoden
    public String getName()
    {
        return name;
    }
    public int getNummer()
    {
        return nummer;
    }
    public boolean getMaennlich()
    {
        return maennlich;
    }
    
    //set-Methoden
    public void setName(String pName)
    {
        if (pName != null && pName.length()>= 2 )
        {
        name= pName;
    }
    else
    {
        System.out.println("Der Name muss mindestens 2 Zeichen haben");
        nummer=0;
    }
    }
    public void setNummer(int pNummer)
    {
        if (pNummer > 0)
        {
           nummer= pNummer;
        }
        else
        {
           System.out.println("Die Nummer muss größer als 0 sein.");
        }
    }
    public void setMaennlich(boolean pMaennlich)
    {
        maennlich= pMaennlich;
      
    }
    public void printSchueler()
    {
        System.out.println(name+ " hat die Nummer "+ nummer);
        System.out.println("Der Schüler "+name+" hat >"+nummer+" < als Schuelernummer");
        System.out.println(nummer+": Name=\""+name+"\"");
        
        String geschlecht;
        if (maennlich) geschlecht= "maennlich";
        else geschlecht= "weiblich";
        
        
        if (maennlich)
        {
            System.out.println("Der Schüler "+name+" ist "+geschlecht+"");
        }
        else
        {
            System.out.println("Die Schülerin "+name+" ist "+geschlecht+"");
        }
    }
    public void printSchueler2()
    {
        System.out.println (name + " hat die Nummer " + nummer);
    }
    public void printSchueler3()
    {
        System.out.println (nummer +": Name=\""+name+"\"");
    }



Bitte, bitte Hilfe!! Vielen Danke im Vorhinein!
 
Zuletzt bearbeitet:

Gucky

Top Contributor
Bitte nächstes Mal die Java-Tags verwenden, um den Code besser lesbar zu machen.

Den default-Konstruktor brauchst du, wenn du ein Objekt instanziieren willst.

Den Wert gibst du über den Konstruktor mit und mit dem setter settes du ihn dann in der Variable.

Zu den Aufgaben:
Da die Namen alle wahrscheinlich keine Doppelnamen sind, kannst du mit der split(' ') Methode den String um das Leerzeichen splitten und dann einfach den ersten Eintrag des zurückgegebenen Arrays ausgeben.

getFamilienname(): genau so.

getNameVerkürzt(): du organisierst dir den Nachnamen in einem String, fügst den ersten Buchstaben des Vornamens mit charAt(0) hinzu und dann einen Punkt.

getInitialien: nach demselben Prinzip

getGrossbuchstaben(): du organisierst dir den Nachnamen, verwandelst ihn in Blockbuchstaben mit toUpperCase() und fügst den Vornamen hinzu.
 

rme

Top Contributor
Hallo :)

Zum Zusammenhang zwischen dem Default-Konstruktor und den set-Methoden: Im Default-Konstruktor stellst du ein, welche Werte standardmäßig gesetzt sein sollen, bis der Benutzer des Objekts sich entscheidet, mit der set-Methode einen anderen Wert anzugeben. Es könnte also beispielsweise ein motorisiertes Ungetüm angelegt werden, das standardmäßig erstmal 50 PS hat. Über eine set-Methode (setpsanzahl beispielsweise) könnte nach dem Anlegen dann ein anderer Wert gesetzt werden - vielleicht, weil das Ungetüm einen neuen Motor bekommt und deshalb vom Standardwert abgewichen werden soll :)
 

Vancold

Aktives Mitglied
Hallo Jule!

Ich beantworte deine Fragen einfach wie du sie gestellt hast ;)!


1) Wieso braucht man einen Default-Konstruktor.

Autos sind gute Beispiele.

Stell dir vor du hast jetzt ein Auto.
Die Standard-Version. Die hat vielleicht eine normalisierte PS-Anzahl, Design und Ausstattung.
Für jedes Auto das nur das Standardmodell sein soll kannst du diesen benutzen.


Nun will aber der Autohersteller auch 2 weitere Versionen machen.
Eine mit einem besseren Motor und eine mit einem besseren Motor und Klimaanlage.

Diese sind natürlich jetzt keine Default-Modelle (d.h.: Standard-Modelle).
Dafür könntest du zwei weitere Konstruktoren erstellen, welche diese Werte als Parameter übernehmen.
In dem Fall eine PS-Anzahl und einen String namens Zubehör.

Du könntest natürlich auch mit einer Set-Methode (Setter) arbeiten, aber es ist um einiges leichter mit einem Konstruktor der genau dies schon für dich macht.


Je genauere Angaben du zum Auto (Objekt) machen willst umso länger wird dein Konstruktor-Head (die Zeile mit public Klassenname(int attribute1, String attribut2) )


2) Ja wenn du andere PS-Anzahlen angeben willst machst du das über den Setter dieses Attribut.

Wieso man das nicht in den Defaul-Konstruktor schreibt erklärt sich aus der Antwort aus der ersten Frage.

Wenn die Autos standardmäßig 100 PS haben wäre es unlogisch einen anderen Standardwert einzustellen.

Sinnvoll wäre entweder einen zweiten Konstruktor zu schreiben (ist aber nicht der default) und dort ein int psanzahl in den header zu schreiben oder später einfach die setPSAnzahl(int ps) aufzurufen.


3) Das sind Code-schnippsel.
Wenn du Probleme damit hast, schreibs doch einfach dann hier nochmal ;)


LG

Rene
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Einige Anfängerfragen (Datentypen, Wertebereich) Java Basics - Anfänger-Themen 11
C Einige Anfängerfragen (Return-Wert, Exception...) Java Basics - Anfänger-Themen 11
S Erste Schritte Einige Anfängerfragen Java Basics - Anfänger-Themen 5
1 Einige Anfängerfragen Java Basics - Anfänger-Themen 12
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
A Shopping Cart Programm. Verstehe einige Zusammenhänge nicht Java Basics - Anfänger-Themen 1
R Einige Neulingsfragen (Wrapper, GUI-Programmierung) Java Basics - Anfänger-Themen 4
C Einige Fragen zu Frames Java Basics - Anfänger-Themen 7
M Vererbung Methode nur für einige Klassen? Java Basics - Anfänger-Themen 8
S Einige Grundlegende Begriffe Java Basics - Anfänger-Themen 6
P Hilfe bei MultiThreading; Einige Fragen. Java Basics - Anfänger-Themen 14
M JPanel - einige Fragen und Probleme Java Basics - Anfänger-Themen 6
V Java Fenster, einige Probleme und Fragen Java Basics - Anfänger-Themen 5
A RS232 und Microcontroller - einige Fragen Java Basics - Anfänger-Themen 7
G Java Verstaendnis ? und einige Fragen Java Basics - Anfänger-Themen 4
Q Bilderdownload per ftp.einige Bilder defekt Java Basics - Anfänger-Themen 4
D Einige Fragen zu Java Java2D JDBC usw. XD Java Basics - Anfänger-Themen 13
T Listen | und einige Methoden für Listen Java Basics - Anfänger-Themen 11
S einige Fragen: jTextPanel scrollen Java Basics - Anfänger-Themen 2
S Einige Javafragen eines Neulings Java Basics - Anfänger-Themen 10
K Wie werden einige Methoden aufgerufen ? Java Basics - Anfänger-Themen 4
A Einige Fragen zu Files Java Basics - Anfänger-Themen 2
M Anfängerfragen.... Java Basics - Anfänger-Themen 2
E Erste Schritte Verschiedene Anfängerfragen (Rekursion, Terminierung, Schleife, etc.) Java Basics - Anfänger-Themen 5
B 2 Anfängerfragen zu JDK und javac Java Basics - Anfänger-Themen 4
M Sammlung von Anfängerfragen für mein erstes Programm Java Basics - Anfänger-Themen 15
M Anfängerfragen zu GUI Java Basics - Anfänger-Themen 2
J showInputDialog anfängerfragen =D Java Basics - Anfänger-Themen 3
F Anfängerfragen Java Basics - Anfänger-Themen 3
M Anfängerfragen zu Java Applets Java Basics - Anfänger-Themen 4
A 2 anfängerfragen Java Basics - Anfänger-Themen 5
T verschiedene Anfängerfragen Java Basics - Anfänger-Themen 20
N Anfängerfragen und Zugriff auf JTextField Java Basics - Anfänger-Themen 5
T Anfängerfragen von Takeru Java Basics - Anfänger-Themen 4
R Noch ein paar Anfängerfragen. Java Basics - Anfänger-Themen 4
S Ein paar Anfängerfragen Java Basics - Anfänger-Themen 17
B Grobe Anfängerfragen Java Basics - Anfänger-Themen 2
A Kleine Anfängerfragen u.a.: Kann man Random "speichern& Java Basics - Anfänger-Themen 6
B Paar richtige Anfängerfragen Java Basics - Anfänger-Themen 7
J gui anfängerfragen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben