Erste Schritte Object reference funktioniert nicht. Wie mach ichs richtig?

Diskutiere Object reference funktioniert nicht. Wie mach ichs richtig? im Allgemeine Java-Themen Forum; Hallo liebes Forum, ich habe hier ein für mich nicht definierbares Problem. Hier der Code: Superclass package Prasenzubung_Ubung06_Aufgabe02;...

  1. Rome89
    Rome89 Neues Mitglied
    Hallo liebes Forum,

    ich habe hier ein für mich nicht definierbares Problem.
    Hier der Code:

    Superclass
    Code (Java):
    package Prasenzubung_Ubung06_Aufgabe02;

    public class Aufgabe02_Mitarbeiter {
        protected String name, rvs;
       
        public  void MitarbeiterInfo() {
    //        Java does not have any concept of global variables.
    //        There is either an instance variable or a class variable.
    //        A class variable is also known as static field/variable ,
    //        and is shared by all the objects/instances of the class
    //        ( hence the name "class variable").

            System.out.println("Name: "+name);
            System.out.println("RVS Nr.: "+rvs);
            }
        }
    }
    Subclass1
    Code (Java):
    package Prasenzubung_Ubung06_Aufgabe02;

    public class Aufgabe02_Angestellter extends Aufgabe02_Mitarbeiter {
        protected String sts = "Angestellter";
        protected double gehalt;
       
        public void MitarbeiterInfo() {
            //Create object and refer from object to the other ClassMethod
            Aufgabe02_Mitarbeiter ref = new Aufgabe02_Mitarbeiter(); //
            ref.MitarbeiterInfo(); //non-static reference
            // Aufgabe02_Mitarbeiter.MitarbeiterInfo();//static reference -> non-static method
            // sysout("...")

            sts = "Angestellter";
            System.out.println("Status: "+sts);
            System.out.println("Gehalt: "+gehalt);
            }
       
        //Konstruktor
        protected Aufgabe02_Angestellter(String _name, String _rvs, int _gehalt)
        {
            Aufgabe02_Mitarbeiter ref = new Aufgabe02_Mitarbeiter(); //
            // Aufgabe02_Angestellter thisref = new Aufgabe02_Angestellter();
            _name = ref.name;
            //_name = super.name;
            _rvs = ref.rvs;
            //_rvs = super.rvs;
            _gehalt = (int) gehalt;
            gehalt = (double) gehalt;
            }
       
        protected void SetGehalt(double a) {
            gehalt = a;
            }
           
        }
     
    Subclass2
    Code (Java):
    package Prasenzubung_Ubung06_Aufgabe02;

    public class Aufgabe02_Arbeiter extends Aufgabe02_Mitarbeiter {
        //    The static keyword in Java means that the variable or function is shared
        //    between all instances of that class as it belongs to the type, not the
        //    actual objects themselves. So if you have a variable:
        //    private static int i = 0; and you increment it ( i++ ) in one instance,
        //    the change will be reflected in all instances
        protected  String sts = "Arbeiter";
        protected  double stdl, stdg, lohn;
       
        public void MitarbeiterInfo() {

            // Create object and refer from object to the other ClassMethod
            Aufgabe02_Mitarbeiter ref = new Aufgabe02_Mitarbeiter();
            ref.MitarbeiterInfo();
            //sysout("...")
           
            System.out.println("Status: "+sts);
            System.out.println("Stundenlohn: "+stdl);
            System.out.println("Anzahl Stunden: "+stdg);
            System.out.println("Arbeitslohn: "+lohn);
            }
       
        //Konstruktor
        protected Aufgabe02_Arbeiter(String _name, String _rvs, double _stdg, int _lohn)
        {
            Aufgabe02_Mitarbeiter ref1 = new Aufgabe02_Mitarbeiter();
            _name = ref1.name;
            _rvs = ref1.rvs;
            _stdg = stdg;
            //_lohn = thisref.lohn;
            _lohn = (int) GetLohn(); // cast to continue
            }

        public double GetLohn() {
            lohn = (double) stdl*stdg; // Cast for correct data type.
            return lohn;
            }
       
        public double SetLohn(double a) {
            stdl = a;
            return stdl;
            }
       
    }
     
     
  2. Vielleicht hilft dir dieser Kurs hier weiter --> (hier klicken)
  3. Kababär
    Kababär Aktives Mitglied
    Das da wäre?

    Deine Superklasse hat nur einen Standard-Konstruktor. Wie willst du denn die Werte befüllen?

    Edit: Hab übersehen, dass die Attribute protected sind


    Edit2: im Konstruktor erzeugst eines Instanz deines Arbeiters. In der printInfo Methode erstellst du wieder eine neue Instanz. Beide Instanzen sind lokal. Mach eine globale Instanz daraus (Klassenattribut).
     
    Zuletzt bearbeitet: 27. Nov. 2016
  4. Rome89
    Rome89 Neues Mitglied
    Das ist alles, was ich machen kann.
    Damits funktioniert brauch ich eure Hilfe.

    1. Wie implementiere ich die Methode, damit sie die richtigen Print machen kann?
    2. Wieso ist sts bei mir leer?

    Code (Java):

    package Prasenzubung_Ubung06_Aufgabe02;

    public class Aufgabe02_Mitarbeiter {
        protected String name, rvs;
        protected String sts;

        public  void MitarbeiterInfo() {
    //        Java does not have any concept of global variables.
    //        There is either an instance variable or a class variable.
    //        A class variable is also known as static field/variable ,
    //        and is shared by all the objects/instances of the class
    //        ( hence the name "class variable").
         
            System.out.println("Name: "+name); //calls the latest field containing name
            System.out.println("RVS Nr.: "+rvs);
            System.out.println("Status: "+(this).sts); //It's not working.
    //        if ( sts == "Angestellter")
    //            System.out.println("Gehalt: "+gehalt);
    //        else
    //        {
    //            System.out.println("Stundenlohn: "+stdl);
    //            System.out.println("Anzahl Stunden: "+stdg);
    //            System.out.println("Arbeitslohn: "+lohn);
    //            }
            }
        }
     
    Code (Java):

    package Prasenzubung_Ubung06_Aufgabe02;

    public class Aufgabe02_Angestellter extends Aufgabe02_Mitarbeiter {
     
        //Konstruktor
        protected Aufgabe02_Angestellter(String _name, String _rvs, int _gehalt)
        {
            super.name = _name;
            super.rvs = _rvs;
            gehalt = _gehalt;
            }
     
        protected String sts = "Angestellter";
        protected double gehalt;
     
        protected void SetGehalt(double a) {
            gehalt = a;
            }
         
        }

     
    Code (Java):

    package Prasenzubung_Ubung06_Aufgabe02;

    public class Aufgabe02_Arbeiter extends Aufgabe02_Mitarbeiter {
        //    The static keyword in Java means that the variable or function is shared
        //    between all instances of that class as it belongs to the type, not the
        //    actual objects themselves. So if you have a variable:
        //    private static int i = 0; and you increment it ( i++ ) in one instance,
        //    the change will be reflected in all instances

        //Konstruktor
        protected Aufgabe02_Arbeiter(String _name, String _rvs, double _stdg, int _lohn)
        {
            super.name = _name;
            super.rvs = _rvs;
            stdg = _stdg;
            lohn = _lohn;
            }
     
        protected  String sts = "Arbeiter";
        protected  double stdl, stdg, lohn= (double) stdl*stdg;;
     
        public double SetLohn(double a) {
            stdl = a;
            return stdl;
            }
     
    }
     
     
    Zuletzt bearbeitet: 2. Dez. 2016
  5. JStein52
    JStein52 Bekanntes Mitglied
    Bei Arbeiter und angestellter jeweils diese Zeile löschen ! Statt dessen im jeweiligen Konstruktor super.sts = "Arbeiter"; schreiben.
    Und im Rest sind auch noch ein paar dicke Hämmer drinnen. Das kannst du aber im nächsten Schritt beheben.
     
Die Seite wird geladen...

Object reference funktioniert nicht. Wie mach ichs richtig? - Ähnliche Themen

Interface Objectreference Übergabe
Interface Objectreference Übergabe im Forum Hausaufgaben
NamingException: Could not dereference object
NamingException: Could not dereference object im Forum Allgemeines EE
JSONObject auslesen und in HashMap hinterlegen
JSONObject auslesen und in HashMap hinterlegen im Forum Allgemeine Java-Themen
Java Object mit Hibernate in MySQL abspeichern
Java Object mit Hibernate in MySQL abspeichern im Forum Datenbankprogrammierung
TableView: 'Komplexes' Object
TableView: 'Komplexes' Object im Forum AWT, Swing, JavaFX & SWT
Thema: Object reference funktioniert nicht. Wie mach ichs richtig?