Portal > Foren > Java > Allgemeine Java-Programmierung > Probleme mit get- und set-Methoden
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 17.02.2005, 13:00 Nach oben    #1
Liu
Gast
 
Beiträge: n/a
Standard Probleme mit get- und set-Methoden

Hallo Leute,

und zwar hab ich ja jetzt erst angefangen mit dem Programiern und habe folgendes Beispiel zum Thema "get- und set-Methoden" gemacht:

PHP-Code:
  public class Person {

       private 
String vorname;
       private 
String zuname;
       
       public 
Person String zunameString vorname ) {
         
this.setZuname(zuname);
         
this.setVorname(vorname);
       }
       
       protected 
void setZuname String s ){
         
this.zuname s;
       }
       
       public 
String getZuname() {
         return 
this.zuname;
       }
       
       protected 
void setVorname String s ) {
         
this.vorname s;
       }
       
       public 
String getVorname() {
         return 
this.vorname;
       }
       
       public 
String toString() {
         return 
this.vorname " " this.zuname;
       }

und die main Funktion:

PHP-Code:

public class PersTest {
  public static 
void main String[] args ) {

         
Person anna  = new Person "Schmid""Anna" );
         
Person willi = new Person "Schlosser""Wilhelm" );
         
         
System.out.println( );
         
System.out.println"Vorname:" );
         
System.out.printlnanna.getVorname() );
         
System.out.printlnwilli.getVorname() );
         
System.out.println( );
         
System.out.println"Komplette Informationen:" );
         
System.out.printlnanna );
         
System.out.printlnwilli );
         
System.out.println( );
  }

Jedoch verstehe ich das Programm leider nicht wirklich, also wie das mit den get- und set- Methoden funtioniert und wozu man sie überhaupt braucht.
Und was das mit dem "String s" soll verstehe ich auch nicht.

Sorry wenn die frage blöd ist aber ich bin eben noch ganz am Anfang.

Gruß
Liu
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 13:09 Nach oben    #2
mic_checker
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Liu
Hallo Leute,

und zwar hab ich ja jetzt erst angefangen mit dem Programiern und habe folgendes Beispiel zum Thema "get- und set-Methoden" gemacht:

PHP-Code:
  public class Person {

       private 
String vorname;
       private 
String zuname;
       
       public 
Person String zunameString vorname ) {
         
this.setZuname(zuname);
         
this.setVorname(vorname);
       } 
Warum nicht direkt:

PHP-Code:
this.zuname zuname;
this.vorname vorname
Den Umweg über die setMethoden finde ich an dieser Stelle unnötig, da du ja in der Klasse bist und Zugriff auf die privaten Attribute hast.

Zitat:
Jedoch verstehe ich das Programm leider nicht wirklich, also wie das mit den get- und set- Methoden funtioniert und wozu man sie überhaupt braucht.
Und das mit dem String s verstehe ich auch nicht, also wozu es braucht =/.
Also:
Deine beiden Strings sind als private deklariert, wenn du nun in einer andern Klasse ein Objekt deiner Klasse erzeugst, dann hast du erstmal keinen direkten Zugriff auf die Attribute (Beim Versuch drauf zuzugreifen würde der Compiler melden : ...has private access in ...." oder so was ähnliches).
Nun musst du eigene get/set Methoden schreiben um dennoch auf die Attribute zugreifen zu können, d.h. den Wert zu erfragen (get) und zu setzen (set).

Liegt also am Sichtbarkeitsbereich der Variablen.


"Das mit Strings" - damit ist sicherlich toString gemeint oder? Also nehmen wir an du hast folgende Zeile:

PHP-Code:
System.out.printlnanna ); 
An dieser Stelle wird geschaut ob in deiner Klasse Person eine Methode "toString()" existiert, diese wird standardmäßig von System.out.println() aufgerufen - in solchen Fällen.
Wenn du keine hast schaut er in Object nach und benutzt die toString() Methode aus Object (vorrausgesetzt deine Klasse ist keine Subklasse einer andern) - da dies in dem Fall aber nicht das gewünschte Ergebnis liefern wird, musst du die Methode überschreiben, damit die Informationen ausgegeben werden.

NOch weitere Fragen?
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 13:19 Nach oben    #3
Liu
Gast
 
Beiträge: n/a
Standard

Hey Danke schon am für die Antwort aber wozu brauch ich diese zeilen:

PHP-Code:

protected void setZuname String s ){
         
this.zuname s;


protected 
void setVorname String s ) {
         
this.vorname s
das "s" wird doch später garnicht mehr aufgerufen =(, oder versteh ich da was falsch? *grübel*
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 13:22 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Hallo,
das "s" ist der übergebene Wert .. also z.B. ein Vorname, der dann der Membervariable "vorname" zugewiesen wird.

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 13:22 Nach oben    #5
mic_checker
Gast
 
Beiträge: n/a
Standard

Also mit einer set Methode willst du deiner Variablen doch etwas zuweisen. Dafür musst du der Methode etwas übergeben, in diesem Fall "String s".

Der aktuelle Wert wird dann auf den Wert von dem "String s" gesetzt.

Btw. du hast recht, nachher wird der String "s" nicht mehr gebraucht ,aber wofür auch? Der ist dann nur in dieser Methode sichtbar.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 13:39 Nach oben    #6
Liu
Gast
 
Beiträge: n/a
Standard

Alles klar, danke für eure Hilfe =)
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 13:46 Nach oben    #7
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Hallo,

ich habe noch ein kleines Beispiel gemacht, welches es eventuell noch etwas verdeutlicht .. auch wenn Du es schon verstanden hast

PHP-Code:
public class Demo
{
    public static 
void mainString[] args throws Exception
    
{
        
// Objekt der Klasse Person anlegen
        
Person pers1 = new Person();

        
// toString() wird implizit aufgerufen
        
System.out.printlnpers1 );

        
pers1.setVorname"Karin" );
        
pers1.setNachname"Meyer" );

        
System.out.printlnpers1 );

        
System.out.println"Vorname:" pers1.getVorname() );
        
System.out.println"Nachname:" pers1.getNachname() );

        
// zweites Objekt anlegen
        
Person pers2 = new Person"Ute""Müller" );

        
System.out.printlnpers2 );

        
System.out.println"Vorname:" pers2.getVorname() );
        
System.out.println"Nachname:" pers2.getNachname() );

    }
}


class 
Person
{
    
/**
     *  Hier werden die Membervariablen deklariert.
     */
    
private String vorname;
    private 
String nachname;

    
/**
     *  Standardkonstruktor
     *  Hier werden die Membervariablen mit einem leeren String initialisiert
     */
    
public Person()
    {
        
// mit this greifst Du auf das aktuelle / das eigene Objekt zu
        
this.vorname  "";
        
this.nachname "";
    }


    
/**
     *  Überladener Konstruktor, der als Parameter den Vornamen und Nachnamen erhält
     *  Die Membervariablen erhalten dann die Werte der Parameter
     */
    
public PersonString vornameString nachname )
    {
        
this.vorname  vorname;
        
this.nachname nachname;
    }


    
/**
     *  setVorname( String ) setzt den Vornamen. Die Methode hat Zugriff auf die Membervariable
     */
    
public void setVornameString vorname )
    {
        
this.vorname vorname;
    }

    
/**
     *  setNachname( String ) setzt den Nachnamen. Die Methode hat Zugriff auf die Membervariable
     */
    
public void setNachnameString nachname )
    {
        
this.nachname nachname;
    }


    
/**
     *  De get-Methoden haben auch Zugriff auf die Membervariablen und machen nichts außer die Variable zurückgeben
     */
    
public String getVorname()
    {
        return 
this.vorname;
    }

    public 
String getNachname()
    {
        return 
this.nachname;
    }


    
/**
     *  Die toString()-Methode überschreibt die Methode aus der Klasse Object
     */
    
public String toString()
    {
        if( 
this.vorname.equals("") || this.nachname.equals("") )
        {
            return 
"Nicht alle Angaben vorhanden.";
        }
        else
        {
            
// \n ist der Zeilenumbruch
            
return  "Vorname: " this.vorname "\nNachname: " this.nachname;
        }
    }


Grüße Ben
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 14:19 Nach oben    #8
StringBuffer
Gast
 
Beiträge: n/a
Standard

kannst auch mal beim thema "Java Beans" nachlesen
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 14:34 Nach oben    #9
mic_checker
Gast
 
Beiträge: n/a
Standard

@Ben : warum verkettest du die Konstruktoren nicht ?

PHP-Code:
    /**
     *  Standardkonstruktor
     *  Hier werden die Membervariablen mit einem leeren String initialisiert
     */
    
public Person()
    {
this("","");
    }


    
/**
     *  Überladener Konstruktor, der als Parameter den Vornamen und Nachnamen erhält
     *  Die Membervariablen erhalten dann die Werte der Parameter
     */
    
public PersonString vornameString nachname )
    {
        
this.vorname  vorname;
        
this.nachname nachname;
    } 
Das mach ich zumindest meist ganz gern
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2005, 14:49 Nach oben    #10
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Joa. Ist nett.
Mach ich normalerweise nicht so .. ist aber nett
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Checkboxen prüfen Garnele PHP-Programmierung 21 15.05.2007 11:38
Probleme mit Strato / Arcor? MrNiceGuy Plauderecke 15 28.12.2006 23:35
Probleme beim Realisieren einer Sortierungsfunktion ljungi Datenbanken 6 30.04.2006 16:59
Get und Post aufruf in Servlet js-mueller Allgemeine Java-Programmierung 2 28.04.2006 20:36
Oracle-DB-Zugriff via JSP macht Probleme bene23 Enterprise Java 4 08.11.2005 14:37


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45