Eine Idee umsetzen ganz schnell!?

Kann mir jemand es so erklären dass ich den Unterschied verstehe..... Wenn ich die Klassenvariablen hund,pfau,adler,hahn direkt nach
"public class MyFrame extends JFrame implements ActionListener" erstelle ODER sie erst nach "MyFrame()" deklariere.

Wenn du sie im Klassen Rumpf erstellst sind es Instanzvariablen und in der gesamten Klasse verfügbar. Klassenrumfp ist der Block Bereich zwischen den Geschweiften Klammern.
Zwischen der Öffnenden und Schließenden.


Wenn du sie in einer Methode machst sind sie nur lokal in der Methode verfügbar. In einer anderen Methode nicht.
Methoden sind auch wider die Blöcke zwischen Klammern.
Auch dein Konstruktor „MyFrame()“ ist eine Methode.
Und beginnt mit der öffnenden Klammer und endet mit dazu gehörigen schließenden Klammer


Ich denke dein Hauptproblem ist das Verständnis von OOP

Java:
public class MyFrame … { // Klassenrumpf

    int alter; //  Instanzvariable


  public MyFrame(){   // Methode Konstruktor
    int alter2 = 20;  // lokale Variable
    alter = 30;

  } // Methode ende


} // ende Klasse
 
Zuletzt bearbeitet:
Ich habe überhaupt keine Ahnung, was Du mit einer abstrakte Klasse oder Interface machen möchtest. Du hast halt die Begriffe in den Raum gestellt ohne irgend welche Informationen zu geben, was Du damit überhaupt vorhast.

Abstrakte Klassen und Interfaces sind aber einfache Werkzeuge in einer strukturierten, objektorientierten Entwicklung. Also genau das, zu dem Wir Dir einen Ansatz aufzeigen wollten und von dem Du nichts hören willst. Da wir keine Details kennen, können wir Dir zu Deiner "Option" nichts sagen.

Da Du schnell etwas umsetzen willst, habe ich eben genau beschrieben, wie sowas gehen kann. Das, was ich da dann konkret umschrieben habe lässt sich so schon fast 1:1 in Klassen umsetzen. Da ich Daten dann in entsprechenden Datenklassen habe, kann ich schnell und einfach diese speichern / laden und so weiter (Das Framework bietet z.B. mit den Object Streams diesbezüglich etwas an, aber man kann auch Libraries wie Gson oder Jackson verwenden.) Aber ohne solche Datenklassen geht das schlicht nicht (schnell).

Was da an Funktionalitäten benötigt wird, würde man nach und nach implementieren. Da geht es halt um Features und damit man sich nicht zu viel auf einmal vornimmt kommen die halt einzeln nach und nach.
==> Geht aber alles nur mit einmal ruhig hinsetzen und sich paar Gedanken machen. Es gibt keinen schnellen Ansatz, bei dem man einfach direkt loslegt. Selbst bei den RAD Tools ist dies nicht der Fall.

Somit beissen sich Deine Angaben massiv. Schnell passt nicht dazu, diese einfachen Ansätze nicht zu verfolgen. Du brauchst ein vielfaches der Zeit und schaffst etwas, das nicht zu warten ist. Und da muss man auch nicht schauen, was Du da noch bauen willst. Das, was Du da schon hast, erfüllt dies zu 99,9% Wahrscheinlichkeit schon.

Wenn Du wirklich rein auf Deine Art und Weise weiter machen willst, dann zeige konkreten Code und sag, was Du konkret machen willst. Dann kann man Dir z.B. aufzeigen, wie Du etwas speichern kannst (#37 - wobei mir nicht klar ist, ob abspeichern wirklich ein Speichern auf Festplatte oder so meint oder nur die reine Datenhaltung - die dann in der Regel über Klassen erfolgt).

Das einfach noch einmal als ein Ansatz um wieder zu dem rein fachlichen Thema zurück zu kommen.
 
Ich habe überhaupt keine Ahnung, was Du mit einer abstrakte Klasse oder Interface machen möchtest. Du hast halt die Begriffe in den Raum gestellt ohne irgend welche Informationen zu geben, was Du damit überhaupt vorhast.
Dann frag das nächste mal nach!? Ich bin nicht der Experte hier.

Abstrakte Klassen und Interfaces sind aber einfache Werkzeuge in einer strukturierten, objektorientierten Entwicklung. Also genau das, zu dem Wir Dir einen Ansatz aufzeigen wollten und von dem Du nichts hören willst. Da wir keine Details kennen, können wir Dir zu Deiner "Option" nichts sagen.

Da Du schnell etwas umsetzen willst, habe ich eben genau beschrieben, wie sowas gehen kann. Das, was ich da dann konkret umschrieben habe lässt sich so schon fast 1:1 in Klassen umsetzen. Da ich Daten dann in entsprechenden Datenklassen habe, kann ich schnell und einfach diese speichern / laden und so weiter (Das Framework bietet z.B. mit den Object Streams diesbezüglich etwas an, aber man kann auch Libraries wie Gson oder Jackson verwenden.) Aber ohne solche Datenklassen geht das schlicht nicht (schnell).

Was da an Funktionalitäten benötigt wird, würde man nach und nach implementieren. Da geht es halt um Features und damit man sich nicht zu viel auf einmal vornimmt kommen die halt einzeln nach und nach.
==> Geht aber alles nur mit einmal ruhig hinsetzen und sich paar Gedanken machen. Es gibt keinen schnellen Ansatz, bei dem man einfach direkt loslegt. Selbst bei den RAD Tools ist dies nicht der Fall.

Somit beissen sich Deine Angaben massiv. Schnell passt nicht dazu, diese einfachen Ansätze nicht zu verfolgen. Du brauchst ein vielfaches der Zeit und schaffst etwas, das nicht zu warten ist. Und da muss man auch nicht schauen, was Du da noch bauen willst. Das, was Du da schon hast, erfüllt dies zu 99,9% Wahrscheinlichkeit schon.
"zu warten!?" Ja hier stehst du dir selber im Weg ein guter Ratgeber zu sein indem du irgendwelche Annahmen tätigst und deine persönlichen Erfahrungen mit ins Boot holst die ich vielleicht so nie haben werde.
Wenn Du wirklich rein auf Deine Art und Weise weiter machen willst, dann zeige konkreten Code und sag, was Du konkret machen willst. Dann kann man Dir z.B. aufzeigen, wie Du etwas speichern kannst (#37 - wobei mir nicht klar ist, ob abspeichern wirklich ein Speichern auf Festplatte oder so meint oder nur die reine Datenhaltung - die dann in der Regel über Klassen erfolgt).
Siehst du, hättest du mich nur zuerst gefragt. Kommunikation ist alles. Hier wurde anscheinend etwas angenommen ohne es zu hinterfragen. Ich bin der Laie hier, ich habe keine Ahnung was es alles für Möglichkeiten gibt. Ich wollte einfach den text irgendwo anders aufbewahren. Ob ich es dann auch WIRKLICH mache, hängt von den Möglichkeiten ab. Wenn es ZU kompliziert wird, dann wäre es mir wurst und ich lasse es wie es ist. Aber wenn es doch geht, den Text in einer Klasse oder als txt in einer Datei zu haben, wie ist mir wurst. Mir ging es darum das mir einer der sich damit auskennt die einfachsten Optionen aufzeigt. Quasi:"Schau du kannst es auf die oder die art machen!" Und jemand der nachfragt. Also jenand der im coden auch Kundenkontakt hat mit Kunden wird das kennen. Man muss immer den Kunden 100 Fragen stellen bevor man eigentlich verstehen anfängt was er eigentlich will. Und das kann nur der Experte weil nur er hat das komplette wissen. Man kann nicht vom Kunden erwarten dass er seine Anfrage wie ein Meister-Coder formulieren wird.
Das einfach noch einmal als ein Ansatz um wieder zu dem rein fachlichen Thema zurück zu kommen.
Ich bin wie gesagt eigentlich fertig und hab keinen Bock mehr auf dieses hin und her mit 30 Zeilen und 10 replies die sich alle nur im Kreis drehen und jeder nur beleidigt ist weil der andere nicht das tut was man ihm sagt! 😉
Trotzdem noch ein schönes erholendes Wochenende.
 
Wenn ich die Klassenvariablen hund,pfau,adler,hahn
Tipp das sind keine Klassenvariablen sondern Instanzvariablen


KlassenVariablen sind static und ohne Instanz verfügbar.
Java:
public class  Test {

    public  String name;
    private int alter;
    public  static String typ = "Mann";

    public Test(String name , int alter) {
        this.name  = name;
        this.alter  = alter;
    }


}


public class Main  {

    public static void main(String[] args) {

        Test test = new Test("Peter",20);
        System.out.println("Name ist  "+test.name);

        // System.out.println("Alter ist "+test.alter); //geht nicht da Varaiable privat ist.

        test= null; // Instanz  löschen

        System.out.println("Typ ist  "+Test.typ); // geht auch ohne eine Instaz zu erstellen
                                                                        // beachte Test ist Grossgeschreiben so wie die  "Klasse"

    }
}
 
Ein sehr einfaches Model wäre das in etwas.


Java:
public class Main {
    public Main() {
        Daten daten = new Daten();
        GuiFragen fragen = new GuiFragen(daten);
        fragen.start();
    }

    public static void main(String[] args) {
        new Main();

    }
}

//-----------------------------------------------------------------

public class GuiFragen extends JFrame {

    private Daten daten;

    public GuiFragen(Daten daten) {
        this.daten = daten;
    }

    public void start(){
        //...



        comboBox.addActionListener(new ActionListener() {
            public void actionPerformed (ActionEvent e) {
                daten.setFrage1(comboBox.getSelectedIndex());
                System.out.println(comboBox.getSelectedItem());
                System.out.println(daten.getFrage1());
            }
        });


        // listener Button  start  der zweiten Bildschirmseite mit Übergabe der Ref Daten
        // vieleicht die erste Seite löschen.


    }


}

//-------------------------------------------------
    
public class GuiErgebnis extends JFrame {

    private Daten daten;

    public GuiErgebnis(Daten daten) {
        this.daten = daten;
    }

    public void start(){

        System.out.println(daten.getFrage2());
        System.out.println(daten.text1);


    }
}
    
//---------------------------------------------------   
        
    public class Daten {

    private int frage1;
    private int frage2;

    public String text1 = "Fertig";

    public Daten() {

    }

    public int getFrage1() {
        return frage1;
    }

    public void setFrage1(int frage1) {
        this.frage1 = frage1;
    }

    public int getFrage2() {
        return frage2;
    }

    public void setFrage2(int frage2) {
        this.frage2 = frage2;
    }

    public String getText1() {
        return text1;
    }

    public void setText1(String text1) {
        this.text1 = text1;
    }
}
 
. Man kann nicht vom Kunden erwarten dass er seine Anfrage wie ein Meister-Coder formulieren wird.
Leider ist es oft so, dass manche Kunden mit gefährlichem Halbwissen meinen, konkrete Anforderungen an die Umsetzung stellen zu müssen 😛

Tatsächlich sind mir die Kunden am liebsten, die ganz klar sagen: ich habe keine Ahnung vom Computer (oder: es interessiert mich nicht, wie ihr das macht) aber ich brauche dieses und jenes (in seiner Fachsprache).
 
Leider ist es oft so, dass manche Kunden mit gefährlichem Halbwissen meinen, konkrete Anforderungen an die Umsetzung stellen zu müssen 😛
Das ist Horror … da kann man nur hoffen, dass man da schnell aus dem Projekt raus kommt (oder dass das geklärt wird, aber das ist unwahrscheinlich, da das ja auch eine Frage des Vertrauens ist.

Wenn der Aussage von Fachleuten nicht vertraut wird, dann sollte man sich da nicht mehr beteiligen. Der Thread hier ist ja aus meiner Sicht ein gutes Beispiel.

Oder hast Du da andere Tipps? Wie sind da Deine Erfahrungen? (Da entführe ich den Thread mal oder versuche es … kann ein Admin zur Not ja abtrennen.)
 
Kommt der Azubi im ersten Lehrjahr zu seinem Meister und bittet ihn, ihm zu helfen ein Haus zu bauen. Sagt der Meister:"lass uns mit dem Fundament anfangen." . Sagt der Lehrling: "Nein, bitte mit dem Dach anfangen, die Dachziegeln sehen so cool aus."

Das Datenmodell empfindet der TE als 10 Schritte zu weit gedacht! 😀

Ich möchte noch anmerken, die Philosophie ist weit logischer aufgebaut als der TE denkt. Und damit auch schlüssiger als die vagen Anforderungen die der TE stellt, der hinzu wie ein ignorantes, postpubertäres Kind wirkt, mit seinen unverschämten Kommentaren die er zuletzt abgegeben hat. Die Engelsgeduld einiger hier ist wirklich beneidenswert.
 
darum siehst du bei jedem Game Dev entwicklungs forum in den Regeln
"wir helfen dir immer gerne und nein... wir haben keine lust deine millionen euro app idee zu programmieren"
 
Das ist Horror … da kann man nur hoffen, dass man da schnell aus dem Projekt raus kommt (oder dass das geklärt wird, aber das ist unwahrscheinlich, da das ja auch eine Frage des Vertrauens ist.
Ganz so schlimm meinte ich das jetzt nicht. Das wäre ja noch schöner. Was halt öfter mal unterkommt: das XY-Problem. Manche meinen, sie wüssten, was man wo in der Anwendung einbauen müsste, um ihr Ziel zu erreichen und dann kommen eben solche Anforderungen auf den Tisch: "An der Stelle brauche ich einen Button, dann soll das und das erscheinen und ein Popup und ein Fenster und eine Tabelle und dieses und jenes" und meist ist dann die Beschreibung schon so kompliziert, dass derjenige selbst schon nicht mehr durchblickt. Aber natürlich kein Wort, wozu das benötigt wird. Und wenn man das klärt, stellt sich meistens raus: pfff, das gibts bereits oder das muss an ganz anderer Stelle und ganz anders eingebaut werden.
 
Was halt öfter mal unterkommt: das XY-Problem.
Ja, das kenne ich. Wobei ich da durchaus gute Erfahrungen gemacht habe, dies zu lösen. So ein gewisses Vertrauen und eine gewisse Zusammenarbeit gegeben ist, dann wird die Problematik etwas mehr erörtert, weil "man die noch nicht verstanden hat". Als "Techniker" kostet das ggf. erst einmal Reputation a.la. "Der kapiert langsam" oder "Was will der das so genau wissen?", aber so wirklich das xy Problem vorlag, dann kommt am Ende ja ein verbesserter Vorschlag, der das aufklärt. Und wenn nicht: Man ist ja in den Projekten nicht alleine - dann stehe ich als Person ggf. etwas schlechter da aber die Informationen / Klärung sind ja dennoch für das Team extrem wichtig. Und da sehe ich es mehr aus Firmensicht: Im worst case werde ich in ein neues Projekt kommen aber die Firma kann dann das Projekt deutlich besser bearbeiten. (Dazu ist es aber bisher nie gekommen. Sowas verlief eigentlich immer sehr konstruktiv in einem positiven Miteinander.)
 
Wie läuft das eigentlich in einer so großen Firma? Sind da die Zuständigkeiten starr geregelt oder gibts da Flexibilität? Ich bin ja in einer kleinen Klitsche, da ist das relativ easy, weil jeder fast alles machen/entscheiden muss/kann/darf, je nach Aufgabe und Sichtweise 🙂
 
Da geht vieles natürlich nur mit Zuständigkeiten. Das ist dann klar geregelt - bestimmt nicht unähnlich zu der kleinen Firma. (Da kommen halt juristische Fragen wie: wer ist unterschriftsberechtigt auf. Oder auch Fragen des Risikomanagements. Der Azubi bei euch wird auch keine Risiken verantworten können, die an die Existemz der Firma gehen. 🙂

Aber die Zuarbeiter ist natürlich gegeben. Aber als Software Entwickler ist das nicht mein Thema und da bekomme ich wenig mit. Aber da gibt es viele Standard Prozesse die in der Regel sehr gut funktionieren. Da geht sehr viel schlicht nach ITIL.
 
Wenn es um das Doing geht ist aber auch etwas wie SAFe interessant- das ist dann sozusagen eine agil arbeitende Firma / Bereich. Da kommt man dann als einzelner deutlich mehr mit und hat mehr zu bewerten und zu zu arbeiten. Das macht ein Kunde und das finde ich super. Aber das ist ein anderes Thema. Daher auch mal als separates Thema angehängt.
 
Hatte echt noch ernsthaft überlegt, hier irgendwie noch auf irgendwas thematisch einzugehen.. denke das ist allerdings einfach sinnlos.

Mit dem Titel "Eine Idee umsetzen ganz schnell!?" War ja klar in welche Richtung das gehen wird. "Es sollen keine 100 Stunden aufgewandt" werden. Wie viele Stunden wurden den jetzt schon verschwendet? 12-14? Sich ändernde Anforderungen, mal kurz die Plattform wechseln, obwohl diese ja erst mal gar nicht Prio 1 hatte, laut Aussage.. sondern erst mal einfach etwas lauffähiges hinzubekommen.

Das erinnert mich an einen ehemaligen Kollegen in den 0er Jahren, der wunderbar in MS Abszess Formulare (also Gui) bauen konnte, und andere nervte, die GUI doch bitte mit Leben (also VBA räusper) zu füllen. Von SQL Scripten mal gar nicht zu sprechen, um Anfragen an die DB2 schicken zu können.

Und dann endet das hier mit dem Höhepunkt, dass hier alle zu hohl sind, seine Anforderungen (die er selber gar nicht klar formulieren kann) nicht zu erahnen.. eine wahre Frechheit seitens dieses Forum.
Ein Geisterfahrer? Nee, Dutzende! Das nenne ich mal Selbstbewusstsein..
 

Neue Themen


Zurück
Oben