non static interface Methode

begftr

Mitglied
Guten Tag,

ich habe eine Frage zu non static Methoden.

Ich muss in einer Aufgabe über eine Boolean Methode die Kosten eines Angestellten berechnen und dann entscheiden ob dieser streikt oder nicht
Java:
public class Streik2 {

    interface Gewissen {

        double wert(int entlassungen);
    }

    interface Aktionaer {

        double wert(int entlassungen, double aktienwert);
    }

    abstract class Angestellter {

        double gehalt;

        Angestellter(double gehalt) {
            this.gehalt = gehalt;
        }

        public abstract String toString();

        public abstract int getIndex();

        boolean streikt(double gehaltskuerzung, int entlassungen, double aktienwert) {
            double kosten;
            kosten = gehaltskuerzung * gehalt - Arbeiter.wert(entlassungen);
            if (kosten < 40.0) {
                return true;
            } else {
                return false;
            }
        }
}

      public static class Arbeiter extends Angestellter implements Gewissen {
            
              
          static double gewissenswert;
            
            public Arbeiter(double gehalt, double gewissenswert) {
                super(gehalt);
                this.gewissenswert=gewissenswert;
            }

            @Override
            public String toString() {
                String s = "Arbeiter " + gehalt;
                return s;
            }

            @Override
            public int getIndex() {
                return 0;
            }

            @Override
            public double wert(int entlassungen) {
                return entlassungen*gewissenswert;
            }
        }
    
}

Der Fehler ist in Zeile 27. (non static Method can not be referenced from a static context). Wie kriege ich es nun hin, dass die boolean methode auf die implementierte Interface methode aus "Arbeiter" zugreifen kann?

Danke im Vorraus
 
Zuletzt bearbeitet:

Network

Top Contributor
Wie wäre es wenn du den Arbeiter nicht als static deklarierst?
Oder warum ist die Klasse Arbeiter überhaupt erst als static deklariert worden?

Du kannst nicht von static auf nicht static zugreifen, deshalb verwendet man static normalerweise auch nicht oder nur extrem selten in Java.
Das Problem ist, dass alles als static deklarierte bereits vor dem Programmstart initiiert wird und eventuell auch aufgerufen wird.
Wenn du also versucht in einem statischen Kontext auf einen nicht statischen zuzugreifen, kann nicht sichergestellt werden, dass das Programm bereits läuft und damit die nicht statischen Methoden bereits existieren.

Gruß
Net
 

begftr

Mitglied
Hi,

das habe ich schon probiert, das hat das Problem leider nicht gelöst :-/

also egal ob "Arbeiter" nun static ist oder nicht boolean streikt immer bei "Arbeiter.wert()"

Gruß
 

Network

Top Contributor
Ich kann leider dein Wissen über Java nicht einschätzen und ich habe das Gefühl da fehlt Code, deshalb rate ich einfach mal darauf los:

Wenn bei Arbeiter "static" entfernst, darfst du selbstverständlich nicht mehr statisch darauf zugreifen
Java:
Arbeiter.wert()
sondern musst eine ein Objekt Arbeiter initiieren und darauf dann die Methode aufrufen
Java:
Arbeiter arbeiter = new Arbeiter( 0, 0 );
arbeiter.wert();

Gruß
Net
 

begftr

Mitglied
EHsJs.png



Das ist die Aufgabe. Wird es dadurch verständlicher? Alles bis inklusive boolean war vorgegeben.

Gruß
 

Final_Striker

Top Contributor
Die Klasse [c]Angestellter [/c]weißt doch gar nichts von einer [c]Arbeiter [/c]Klasse.

Als Anfänger braucht man überhaupt kein
Code:
static
.
 

Landei

Top Contributor
Wie wäre es wenn du den Arbeiter nicht als static deklarierst?
Oder warum ist die Klasse Arbeiter überhaupt erst als static deklariert worden?

Du kannst nicht von static auf nicht static zugreifen, deshalb verwendet man static normalerweise auch nicht oder nur extrem selten in Java.

Das stimmt für Methoden und Member-Variablen, aber nicht für statische innere Klassen.

Diese können ganz normal instantiiert werden - unabhängig von der äußeren Klasse. Nicht-statische innere Klassen müssen dagegen in einer Instanz der äußeren Klasse instantiiert werden, und können (über ÄußererKlassenName.this) auch auf diese Instanz zugreifen. So gesehen sind eher die nicht-statischen inneren Klassen die Ausnahme. Jedenfalls laufen innere statische Klassen keinem OO-Prinzip zuwider, und werden auch in der Java-API öfter verwendet (etwa Map.Entry).
 
G

gst

Gast
Ist das aus irgendeinem Uni-Seminar? Wenn ja kannst du dem Seminarleiter ausrichten, dass er sich vielleicht nach einem anderen Fachgebiet umschauen sollte. Diese Aufgabenstellung ist ja schon echt peinlich.

Davon abgesehen war vor kurzem schon ein anderer Kollege von dir hier aufgeschlagen -> http://www.java-forum.org/hausaufgaben/146105-pruefen-ob-interface-implementiert.html mit einem ähnlich hirnverbrannten Lösungsansatz. Aber OK, was soll bei einer Aufgabenstellung auch anderes rauskommen.
 
G

G1316

Gast
Eine Top University halt ;)
Könntest du was du sonst so hast nicht mal eben auf Pastebin veröffentlichen? :p
 

Landei

Top Contributor
Wie schon gesagt wurde, ist die Aufgabe ziemlich idiotisch, und läuft quer zur normalen Verwendung von OO.

In Angestellter müsste man irgendwie sowas machen:

Java:
        boolean streikt(double gehaltskuerzung, int entlassungen, double aktienwert) {
            double kosten = gehaltskuerzung * gehalt;
            if (this instanceof Gewissen) {
               kosten -= ((Gewissen)this).wert(entlassungen);
            } 
            if (this instanceof Aktionaer) {
               kosten += ((Aktionaer)this).wert(entlassungen, aktienwert);
            } 
            if (kosten < 40.0) {
                return true;
            } else {
                return false;
            }
        }

Solchen Code zu schreiben ist schon schlimm genug, aber ihn an der Uni sogar als Aufgabe zu geben sollte mit COBOL nicht unter fünf Jahren bestraft werden.
 

Network

Top Contributor
[OT]
Als ich die Aufgabenstellung gelesen hatte, hatte ich schon keine Lust mehr darauf zu antworten. Hatte mich daraufhin erstmal eine Weile hingelegt.
Scheint ein Autodidakt auf zwang zu sein, der sich eine Stunde vorher sich in den Stoff einliest.

Wobei nie gesagt wurde, dass es sich hierbei um eine Aufgabenstellung einer Uni handelt, oder habe ich da was überlesen?
Also einem Lehrer verzeih ich das gezwungenermaßen, weil der Fehler in der Masse dieser untergeht aber wenn das wirklich von der Uni stammt...
[/OT]
 

begftr

Mitglied
Wie schon gesagt wurde, ist die Aufgabe ziemlich idiotisch, und läuft quer zur normalen Verwendung von OO.

In Angestellter müsste man irgendwie sowas machen:

Java:
        boolean streikt(double gehaltskuerzung, int entlassungen, double aktienwert) {
            double kosten = gehaltskuerzung * gehalt;
            if (this instanceof Gewissen) {
               kosten -= ((Gewissen)this).wert(entlassungen);
            } 
            if (this instanceof Aktionaer) {
               kosten += ((Aktionaer)this).wert(entlassungen, aktienwert);
            } 
            if (kosten < 40.0) {
                return true;
            } else {
                return false;
            }
        }

Solchen Code zu schreiben ist schon schlimm genug, aber ihn an der Uni sogar als Aufgabe zu geben sollte mit COBOL nicht unter fünf Jahren bestraft werden.

Funktioniert! Einführung in die Informatik 1 - > Praktikum Grundlagen der Programmierung :D
Vielen Dank an alle
 
Zuletzt bearbeitet:
T

tröööt

Gast
also nach diesem thread http://www.java-forum.org/hausaufgaben/146105-pruefen-ob-interface-implementiert.html und dem nun immer mehr hervorkommenden aufgaben-text zweifel ich wirklich stark an der kompetenz des aufgabenstellers ... gleich ob einfacher info-lehrer an einer sekundarschule oder prof. dr. an ner uni ...

es wird hier völlig gegen OOP gearbeitet ... und nur weil es funktioniert heißt es noch lange nicht das es schön oder gar best practice wäre ...

das bei solchen aufgaben grundwissen völlig falsch gelernt wird und bei so ner lehrkraft keienr auch nur ansatzweise mitkommt kann ich mir gut vorstellen ... da würd ich lieber auf eigene faust lernen ... hat man mehr erfolg als bei dieser person die bank zu wärmen
 
G

gst

Gast
[OT]
Wobei nie gesagt wurde, dass es sich hierbei um eine Aufgabenstellung einer Uni handelt, oder habe ich da was überlesen?
Könnte man so sagen. Denn die Schullehrer, welche ihre Aufgabenstellungen mit LaTeX schreiben kannst du sicherlich an einer Hand abzählen. Da lag die Wahrscheinlichkeit für einen Hochschuldozenten schon bei gefühlten 99%.[/OT]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Interface und erforderte static's Java Basics - Anfänger-Themen 8
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
A Instance methods should not write to "static" fields Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
B Static vs non static und Probleme daraus Java Basics - Anfänger-Themen 13
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
H Static Java Basics - Anfänger-Themen 5
K Ausgaben auf der Konsole (static Varible) Java Basics - Anfänger-Themen 9
S public static boolean Java Basics - Anfänger-Themen 4
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
L non-static Fehler Java Basics - Anfänger-Themen 16
S Klassenmethode ohne static Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
D Methoden Scannervariablen in static Methoden Java Basics - Anfänger-Themen 5
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
V the static method should be accessed is a static way Java Basics - Anfänger-Themen 6
NormanPatrickBenner static non-static Java Basics - Anfänger-Themen 82
N Erste Schritte "non-static method" oder "XYZ can not be resolved" Java Basics - Anfänger-Themen 21
B Email versenden, muss Methode static sein? Java Basics - Anfänger-Themen 7
R static in der Methode Java Basics - Anfänger-Themen 2
E Problem mit static Methode Java Basics - Anfänger-Themen 4
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
M Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 10
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
D Das leidige Thema static.... Java Basics - Anfänger-Themen 15
Aprendiendo Interpreter-Fehler "non-static variable this cannot be referenced from a static context" Java Basics - Anfänger-Themen 2
T Problem mit static Java Basics - Anfänger-Themen 6
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
snipesss Was kann 'static'? Java Basics - Anfänger-Themen 4
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
M public static int in ActionListener Java Basics - Anfänger-Themen 6
J static verschachtelte Klassen und innere Klassen Java Basics - Anfänger-Themen 1
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
E Objekte und static Java Basics - Anfänger-Themen 2
K Methoden Methoden in Methoden -> static oder nicht? Java Basics - Anfänger-Themen 7
D Erklärung static boolean Java Basics - Anfänger-Themen 6
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
U Erste Schritte cannot be referenced from a static context Java Basics - Anfänger-Themen 1
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
O Zu viel static im Projekt Java Basics - Anfänger-Themen 9
F Static final Klasse Java Basics - Anfänger-Themen 0
N static und Objekt kombiniert?!? Java Basics - Anfänger-Themen 3
O Wann nutzt man static? Java Basics - Anfänger-Themen 19
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
D neue public static class variablen in array speichern? Java Basics - Anfänger-Themen 6
A Static variablen --- Anwendungsbereich Java Basics - Anfänger-Themen 11
B Erste Schritte Wie komme ich aus Static raus?!! Java Basics - Anfänger-Themen 4
V Static Methods Java Basics - Anfänger-Themen 5
W Compiler-Fehler "non-static method cannot be referenced"-Problem Java Basics - Anfänger-Themen 6
S OOP Klasse mit static-Eigenschaften - HashMap füllen Java Basics - Anfänger-Themen 6
3 OOP static class in einer Klasse Java Basics - Anfänger-Themen 6
B static individuell "vererben"? Java Basics - Anfänger-Themen 8
B Erkennen, wann static oder nicht? Java Basics - Anfänger-Themen 7
T Static Fehler Java Basics - Anfänger-Themen 1
R public static void Rückgabe Java Basics - Anfänger-Themen 5
P Compiler-Fehler public static void main, Grundloses Problem Java Basics - Anfänger-Themen 4
A Cannot make a static reference to the non-static field Java Basics - Anfänger-Themen 6
W Variablen Automatisch static? Java Basics - Anfänger-Themen 3
O Warum muss ich static? Java Basics - Anfänger-Themen 6
O Static Java Basics - Anfänger-Themen 15
E non-static method und static context Java Basics - Anfänger-Themen 15
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
S Static void Methode Java Basics - Anfänger-Themen 12
Q Unterschied zwischen static und keinem Modifier Java Basics - Anfänger-Themen 15
O Main-Methode static modifier umgehen Java Basics - Anfänger-Themen 10
J Variablen non-static variable Java Basics - Anfänger-Themen 2
P Erste Schritte public oder static oder wie? Java Basics - Anfänger-Themen 7
J static - Methoden Java Basics - Anfänger-Themen 22
X Erste Schritte Methode ohne Static Java Basics - Anfänger-Themen 4
B Classpath static block - Verwirrung Java Basics - Anfänger-Themen 2
S Methoden Warum ist sleep static? Java Basics - Anfänger-Themen 9
K static, non-static Krise Java Basics - Anfänger-Themen 4
R Schlüsselworte static Methoden und Imports Java Basics - Anfänger-Themen 10
M Methoden "Non-static method xy cannot be referenced from a static context" Java Basics - Anfänger-Themen 20
J Probleme mit static generische Klasse Java Basics - Anfänger-Themen 6
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
W Methodenaufruf innerhalb einer Klasse - static vs. this Java Basics - Anfänger-Themen 3
K Objekt erstellen - error: non-static variable this cannot be referenced from a static context Java Basics - Anfänger-Themen 17
H non-static method cannot be referenced from a static context Java Basics - Anfänger-Themen 2
Y Gebrauch von static Java Basics - Anfänger-Themen 29
L Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 6
T getClass() im static Kontext Java Basics - Anfänger-Themen 12
S Frage zu public static Java Basics - Anfänger-Themen 29
M Problem mit Static Method Java Basics - Anfänger-Themen 8
H Methoden Static ? Java Basics - Anfänger-Themen 10
K Erste Schritte Zugiff ohne static Java Basics - Anfänger-Themen 5
X Static char Problem Java Basics - Anfänger-Themen 11
H static final vs. final static Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben