Funktion definieren und ausfuehren

J

jalexus

Gast
Hallo,

ich habe eine sehr einfache Frage bezueglich eines Java-Macros. Ich habe schon einige Zeit damit verbracht, bei Google zu suchen und dort die gefundenen Sachen auszuprobieren, jedoch hat dies nie funktioniert. Ich moechte lediglich eine Funktion erstellen, welche ich spaeter mehrere Male ausfuehren kann.
Der Code ist fuer ein Programm-Macro, welches komplett in Java geschrieben wird. Ich habe in der Uni mal C "gelernt", jedoch kann ich das leider nicht auf Java uebertragen. Bei C haette mein Vorhaben wohl in etwa so ausgesehen:

// Definieren der Funktion:
function OutputValues() {
Ausfuehren einiger Programmbefehle...
}
// Ausfuehren der OutputValues-Funktion:
OutputValues();
OutputValues();
OutputValues();
...

Das Macro funktioniert eigentlich ohne Probleme, jedoch habe ich dabei ueber Copy&Paste laengere Befehle bestimmt 10x kopiert, sodass der Code viel laenger ist als benoetigt. Ich wuerde gerne dieses Befehle, welche ich mehrfach identisch benoetige, am Beginn des Macros 1x definieren und spaeter nur noch ueber Einzeiler aufrufen. Bei Aenderungen an den Befehlen muesste ich diese Aenderungen auch nur 1x durchfuehren und nicht 10x.
Koennt Ihr mir damit helfen?

Vielen Dank im Voraus!

Alex
 
J

jalexus

Gast
Schon mal danke fuer Deine Antwort. Das ist eine Variante, welche ich auch schon ausprobiert hatte. Jedoch bekomme ich dann beim Ausfuehren des Macros die Meldung "illigal start of expression" und " ';' expected" fuer diese Zeile. Muss ich evtl etwas besonderes im Header hinzufuegen wie "import java.*****", damit das funktioniert? Sorry, bin absoluter Anfaenger.

Gruesse

Alex
 

Final_Striker

Top Contributor
Jedoch bekomme ich dann beim Ausfuehren des Macros die Meldung "illigal start of expression" und " ';' expected" fuer diese Zeile
Ohne Code kann man dazu nichts sagen.


Einfaches Beispiel:

Java:
public class MeineKlasse {
    
    public static void main(String[] argv){
        meineMethode();
        meineMethode();
        meineMethode();
    }
    
    public static void meineMethode(){
        System.out.println(System.nanoTime());
    }
}

Ausgabe:

Java:
35419698545061
35419698761916
35419698858153
 
J

jalexus

Gast
Danke, jetzt sagt er "nur" noch "illigal start of expression". Habe deine erste Zeile 1:1 uebernommen.
 
G

Gast2

Gast
Poste doch mal deinen Code. Ohne den ist die Fehlermeldung nutzlos. Der Code von Final_Striker funktioniert.
 
J

jalexus

Gast
Java:
public class run_speedline_function extends ProgramMacro {

  public void execute() {
    execute0();
  }

  private void execute0() {

//einige Befehle

// an dieser Stelle wollte ich die Funktion definieren

  try {

//einige Befehle

// an dieser Stelle wuerde ich dann gerne die Funktion mehrfach ausfuehren lassen

}
}
}
Das ist die grobe Struktur, dazwischen sind jeweils nur programmspezifische Befehle.
 
G

Gast2

Gast
Daran ist (bis auf das nicht einhalten der Konventionen) nichts falsch. Der Fehler muss woanders liegen.
 
J

jalexus

Gast
Das ist auch der Code, der funktioniert. Jedoch wenn ich dann zB die von euch vorgeschlagenen Befehle an der beschriebenen Stelle einfuege, dann kommt immer dieses "illegal expression"
 
G

Gast2

Gast
Du kannst auch nicht einfach so irgendwelchen Code an irgendwelche Stellen einfügen. Ein Programm hat feste Strukturen und Regeln was Klassen und Methoden angeht, da hat man sich dran zu halten.
Poste doch mal den Code der nicht funktioniert, sag dazu WAS nicht funktioniert und was passieren soll.
 
J

jalexus

Gast
Java:
public class run_speedline_function extends ProgramMacro {
 
  public void execute() {
    execute0();
  }
 
  private void execute0() {
 
//einige Befehle
 
   // Funktion definieren
   public void outputValues(){
     // Funktion
   }
  
  try {
 
//einige Befehle

        // Funktion ausfuehren 
        outputValues();
        outputValues();

}

Das war die 1. Variante von Julian. Da sagt er jedoch in der "public void ..."-Zeile, dass es eine illegal expression ist und dass ein ; in dieser Zeile fehlt.
 
G

Gast2

Gast
- Da fehlen einige schließende Klammern
- Die Methode outputValues steht in der Methode execute0, das geht nicht.
- zum try fehlt noch nen catch oder finally
- Die outputValues() stehen in keiner Methode
 

julian.veh

Bekanntes Mitglied
Java:
public class run_speedline_function extends ProgramMacro {
 
  public void execute() {
    execute0();
  }
 
  private void execute0() {
 
//einige Befehle
 
   // Funktion definieren
   public void outputValues(){
     // Funktion
   }
  
  try {
 
//einige Befehle

        // Funktion ausfuehren 
        outputValues();
        outputValues();

}

Das war die 1. Variante von Julian. Da sagt er jedoch in der "public void ..."-Zeile, dass es eine illegal expression ist und dass ein ; in dieser Zeile fehlt.

Java:
  private void execute0() {
 
//einige Befehle
}

oder verstehe ich den code nicht? Die geschweifte Klammer geht doch nicht zu?! :)
 

julian.veh

Bekanntes Mitglied
Java:
public class RunSpeedlineFunction extends ProgramMacro {
    
    public void execute() {
        execute0();
    }

    private void execute0() {
        try {
            outputValues();
        } finally {
            //?
        }
    }

    public void outputValues() {
        // Funktion
    }
}

Warum benutzt man hier try? :) Gruß
 
J

jalexus

Gast
- Da fehlen einige schließende Klammern
Ja, sorry, die restlichen Klammern habe ich irgendwie nicht eingefuegt, sie sind aber da.

- Die Methode outputValues steht in der Methode execute0, das geht nicht.

Das ist eine sehr nuetzliche Information. Ich dachte, das waere kein Problem. Kann ich die execute0 schliessen und die OutputValues in den try-Befehl integrieren?

- zum try fehlt noch nen catch oder finally

Der catch-Befehl ist da, habe ich vergessen einzufuegen, sorry.

- Die outputValues() stehen in keiner Methode

Was bedeutet das?
 
J

jalexus

Gast
Java:
public class RunSpeedlineFunction extends ProgramMacro {
    
    public void execute() {
        execute0();
    }

    private void execute0() {
        try {
            outputValues();
        } finally {
            //?
        }
    }

    public void outputValues() {
        // Funktion
    }
}

Warum benutzt man hier try? :) Gruß

Der try-Befehl ist vom Programm so vorgegeben.
Muss die Funktion im Code nicht vorher definiert werden bevor man sie aufruft?!
 
M

Marcinek

Gast
@TO

Ganz ehrlich. Gibt es keine Möglichkeit für dich an das Grundlagenwissen zu kommen, außer jeden kleinsten Fehler hier zu posten..?

Imho ist das Forum dazu nicht da.
 
J

jalexus

Gast
Java:
public class RunSpeedlineFunction extends ProgramMacro {
    
    public void execute() {
        execute0();
    }
 
    private void execute0() {
        try {
            outputValues();

         } catch (IOException ex) {
      ex.printStackTrace();
      }    
    }

    public static void main (String[] args){
    outputValues();
    outputValues();
    // warum 2x?
    }
 
    public void outputValues() {
        // Funktion
    }
}

Geht das dann so? Wird dann am Ende die Funktion nicht erneut (ungewollt) ausgefuehrt oder ist das nur die Definition ohne Ausfuehrung?
 
J

jalexus

Gast
@TO

Ganz ehrlich. Gibt es keine Möglichkeit für dich an das Grundlagenwissen zu kommen, außer jeden kleinsten Fehler hier zu posten..?

Imho ist das Forum dazu nicht da.

Ganz ehrlich. Ich benoetige Java nur fuer dieses eine Macro und ich dachte, das Problem waere quasi mit 2-3 Posts erledigt. Sorry, dass ich euch die Zeit stehle...
 

julian.veh

Bekanntes Mitglied
Java:
public class RunSpeedlineFunction extends ProgramMacro {
    
    public void execute() {
        execute0();
    }
 
    private void execute0() {
        try {
            outputValues();

         } catch (IOException ex) {
      ex.printStackTrace();
      }    
    }

    public static void main (String[] args){
    outputValues();
    outputValues();
    // warum 2x?
    }
 
    public void outputValues() {
        // Funktion
    }
}

Geht das dann so? Wird dann am Ende die Funktion nicht erneut (ungewollt) ausgefuehrt oder ist das nur die Definition ohne Ausfuehrung?


Es wird erstmal nur die main methode ausgeführt, weil diese statisch ist und ohne ein Objekt ausgeführt werden kann, glaube ich. Alles Methoden die du in der Main aufrufst werden ausgeführt, also nicht execute(). 2x weil es bei dir auch 2 mal stand ^^.
Was ist das eigentlich für ein Programm? Gruß ^^
 
J

jalexus

Gast
Ich glaube/hoffe, ich habe die Struktur nun besser verstanden und es etwas umgebaut:

Java:
public class run_speedline_function extends StarMacro {

  public void execute() {

  // Definition einiger Variablen

  try {
       OutputValues();
       OutputValues();
  } catch (IOException ex) {
      ex.printStackTrace();
  }
}

  public void OutputValues(){

// Ausfuehren diverser Befehle mit Verwendung der Variablen, welche in execute() definiert wurden

  }
}

Das Problem ist nun, dass er in der OutputValues Funktion nicht auf die zuvor definierten Variablen zugreifen kann... Kann man die irgendwie global definieren oder einfacher uebergeben?
 

Final_Striker

Top Contributor
Das Problem ist nun, dass er in der OutputValues Funktion nicht auf die zuvor definierten Variablen zugreifen kann... Kann man die irgendwie global definieren oder einfacher uebergeben?

Java:
public class run_speedline_function extends StarMacro {
 
   private int meineVariable = 0;
 
   public void OutputValues(){
 
      meineVariable = 5;
 
  }
}
 
J

jalexus

Gast
Ich habe heute morgen noch einige Zeit damit verbracht, den Code anzupassen. Meiner Meinung nach scheitert es jedoch im Endeffekt an den programmspezifischen Befehlen.

Daher habe ich mich nun dafuer entschieden, eine for-Schleife laufen zu lassen.

Dazu eine kurze Frage:

Ich habe die Variable PR0 und die Variablen PR1 bis PR8.
Wie kann ich (am besten als Einzeiler) einstellen, dass im 1. Durchlauf der Schleife PR0 = PR1 ist, beim 2. Durchlauf PR0 = PR2 ist usw. bis beim letzten Durchlauf PR0 = PR8 ist? Die Anzahl der Durchlaeufe reguliere ich ueber die Laufvariable i.

Danke!
 

Final_Striker

Top Contributor
Wie kann ich (am besten als Einzeiler) einstellen, dass im 1. Durchlauf der Schleife PR0 = PR1 ist, beim 2. Durchlauf PR0 = PR2 ist usw. bis beim letzten Durchlauf PR0 = PR8 ist? Die Anzahl der Durchlaeufe reguliere ich ueber die Laufvariable i.

In dem du anstatt der Variablen PR1 bis PR8 ein Array verwendest.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Klassen Funktion in einem Funktionsaufruf definieren Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
M Eine Funktion zuweisen Java Basics - Anfänger-Themen 3
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
I Generische Funktion Java Basics - Anfänger-Themen 3
E Pervasive PSQL insert funktion geht nicht Java Basics - Anfänger-Themen 9
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
H Den Wert einer rekursiven Funktion bestimmen Java Basics - Anfänger-Themen 5
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
M toDouble Funktion Java Basics - Anfänger-Themen 3
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
X Ackermannsche Funktion Java Basics - Anfänger-Themen 32
F Arrays: Mathematische Funktion Java Basics - Anfänger-Themen 19
P Dezimal zu Hexadezimalzahl Funktion Java Basics - Anfänger-Themen 5
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
M Arrays in Funktion Kopieren und Bearbeiten Java Basics - Anfänger-Themen 4
B Funktion mit mehreren Rückgabewerten aka Prozeduren? Java Basics - Anfänger-Themen 12
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
D Funktion nur 1 Rueckgabewert Java Basics - Anfänger-Themen 9
M Wie lang eine Funktion/Methode? Java Basics - Anfänger-Themen 51
N den inhalt eines array per funktion ausgeben Java Basics - Anfänger-Themen 8
R Ackermann Funktion Java Basics - Anfänger-Themen 2
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
T Rekursion Warum bricht meine Funktion nicht ab Java Basics - Anfänger-Themen 4
N Funktion funktioniert nicht immer Java Basics - Anfänger-Themen 6
E Contain-funktion überlisten Java Basics - Anfänger-Themen 4
J Division ohne Arithmetische Funktion Java Basics - Anfänger-Themen 2
S Funktion in Klasse auslagern Java Basics - Anfänger-Themen 4
J Problem mit Boolean bei Funktion! Java Basics - Anfänger-Themen 5
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
D Nullstellen einer Funktion 3. Grades mit Horner Schema Java Basics - Anfänger-Themen 6
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
A Rekursion Funktion in eine Iterativ Funktion umwandeln Java Basics - Anfänger-Themen 9
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
B Zugriffe in einer Klasse / Funktion Java Basics - Anfänger-Themen 9
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
T Lambda-Funktion bei Binärbäumen Java Basics - Anfänger-Themen 13
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
M Thread.sleep() Funktion Java Basics - Anfänger-Themen 1
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
E Compare-Funktion bei eigener Klasse Java Basics - Anfänger-Themen 4
S Threads run - Funktion wird nur einmal ausgeführt. Java Basics - Anfänger-Themen 8
B Anwender soll mathematische Funktion eingeben können, Einfachster Fnktionsplotter Java Basics - Anfänger-Themen 4
R If Funktion funktioniert nicht :P Java Basics - Anfänger-Themen 3
H Funktion in Hintergrund und Vordergrund ausführen Java Basics - Anfänger-Themen 11
S Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert..? Java Basics - Anfänger-Themen 9
S Funktion eines Stacks Java Basics - Anfänger-Themen 4
T Integer-Objekt über Hash-Funktion in Array ablegen Java Basics - Anfänger-Themen 1
S Separate Funktion für JUnit-Test Java Basics - Anfänger-Themen 3
D Keine Funktion bei "else" Java Basics - Anfänger-Themen 5
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
X Eval-Funktion mit Variable Java Basics - Anfänger-Themen 2
T Screenreader Funktion Java Basics - Anfänger-Themen 2
S Wertetabelle einer Funktion f : R -> R Java Basics - Anfänger-Themen 1
P Methoden suche funktion die char wert ausgibt wenn man numerischen wert und radix angibt Java Basics - Anfänger-Themen 1
1 repaint() Funktion erzeugt Flackern Java Basics - Anfänger-Themen 33
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
R if funktion ohne else - Bedingung trifft nicht zu, ausgabe nicht nachvollziehbar Java Basics - Anfänger-Themen 7
shiroX OOP Java Funktion implementieren Java Basics - Anfänger-Themen 3
O Debug-Funktion mit Slick - Kleines Problem Java Basics - Anfänger-Themen 5
F Funktion immer zur vollen Stunde? Java Basics - Anfänger-Themen 3
S ResultSet close() in funktion nich möglich. Java Basics - Anfänger-Themen 8
C Meine erste Funktion Java Basics - Anfänger-Themen 12
J Funktion um JSON per Post senden/emfangen Java Basics - Anfänger-Themen 3
G OOP Aus Objekt auf Funktion der erzeuger Klasse zugreifen? Java Basics - Anfänger-Themen 11
D Binäre Suche für Integerarray in rekursiver Funktion Java Basics - Anfänger-Themen 5
M Interface als Konstruktorparameter nutzen, um Funktion zu plotten Java Basics - Anfänger-Themen 14
NR_EIGHT Benutzereingabe in Funktion verpacken Java Basics - Anfänger-Themen 4
D Loop Funktion für Robot Klasse Java Basics - Anfänger-Themen 5
N mathematische Funktion Java Basics - Anfänger-Themen 29
R Programm verstehen, Funktion Java Basics - Anfänger-Themen 4
C Automatisches Ausfuehren einer Funktion beim Laden eines Jar files Java Basics - Anfänger-Themen 3
O Nicht Standard Form boolesche Funktion in Standard Form parsen Java Basics - Anfänger-Themen 3
F Sleep Funktion Java Basics - Anfänger-Themen 12
S Euklid Funktion Java Basics - Anfänger-Themen 8
H Funktion mit Argumenten Java Basics - Anfänger-Themen 5
Q Random Funktion JButtons Java Basics - Anfänger-Themen 6
O Probleme mit der repaint-Funktion Java Basics - Anfänger-Themen 6
F Eine Frage über paint() Funktion Java Basics - Anfänger-Themen 2
S Parameterübergabe - identische Funktionen, aber falsche Funktion Java Basics - Anfänger-Themen 5
C Probleme mit replaceAll Funktion Java Basics - Anfänger-Themen 9
S Vector mit beliebigen Klassen an Funktion übergeben Java Basics - Anfänger-Themen 20
C OOP Java JButton mit Funktion belegen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben