Bereits aufgerufene Class aus anderer Class nutzen?

Status
Nicht offen für weitere Antworten.

-horn-

Bekanntes Mitglied
moien,

ich probiere gerade mich an meinen ersten Class und habe dazu eine frage.

ich rufe aus dieser main

Code:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package auto;

/**
 *
 * @author Andreas
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        
        splitter input1 = new splitter();
        input1.splitstring = "50;44;123:33;11;77:1";
        splitter input2 = new splitter();
        input2.splitstring = "11;33;55:77;88;99;111:133;155:177;199";
        
        System.out.println("hurz = " + input1.cut()[2].length);
        System.out.println("hurz = " + input2.cut()[3][1]);
        
        // in neuem array übertragen
        int[][] output2 = input2.cut();
        System.out.println("output2.length = " + output2[3].length);
    }

}

die in der splitter.java stehende class auf

Code:
package auto;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Andreas
 */
public class splitter {
    public String name;
    public String splitstring;
    public int shopLength = 3;

    public int[][] cut()
    {
        // splitten
        String[] splitArray = splitstring.split(":");
        System.out.println("cut " + splitArray.length);
        
        String[][]  articlesInShopsString   = new String[splitArray.length][shopLength];
        int[][]     articlesInShops         = new int[splitArray.length][];
        
        for(int i=0; i<articlesInShopsString.length; i++){
            articlesInShopsString[i] = splitArray[i].split(";");
        }
        System.out.println("articlesInShopsString[2][0] = " + articlesInShopsString[2][0]);
        
        for(int i=0; i< articlesInShopsString.length; i++){
            articlesInShops[i] = new int[articlesInShopsString[i].length];
                for(int j=0; j< articlesInShopsString[i].length; j++){
                    articlesInShops[i][j] = Integer.parseInt(articlesInShopsString[i][j]);
                }
        }
        System.out.println("hui = " + articlesInShops[2].length);
        return articlesInShops;
    }
}

und übergebe die gesplittenen strings und zu int gewandelten zahlen zur main zurück.

das klappt auch ganz gut.

so, nun würde ich eine weitere class in einer neuen *.java aufmachen und die daten aus splitter.java nicht zur main, sondern in die neue class dort senden. ich möchte mit den zahlen noch weitere dinge anstellen, und will den umweg zurück zur main, um von dort aus wieder auf die neue class zuzugreifen und dann die daten sich übergeben zu lassen sparen.

was genau muss ich da tun?

ich habe zwar im javabuch nachgeguckt, aber ich finde das dort irgendwie nicht so vor, dass ich es als meine lösung des problems erkenne.

grüße, Andreas
 
Ganz einfach gesprochen:
Du erzeugst dir ein Objekt der 2. Klasse in der main und übergibst es mit dem gesplittetem String aus der main an die 1.Klasse.
Diese Klasse kann dann auf die 2.Klasse zugreifen und dort sämtliche Funktionen nutzen.

Falls die main das Objekt der 2. Klasse überhaupt nicht braucht, dann erstelle es doch direkt in der 1. Klasse

Ob das jetzt Sinn macht oder nicht, sei mal dahingestellt
 
Verjigorm hat gesagt.:
Ganz einfach gesprochen:
Du erzeugst dir ein Objekt der 2. Klasse in der main und übergibst es mit dem gesplittetem String aus der main an die 1.Klasse.
Diese Klasse kann dann auf die 2.Klasse zugreifen und dort sämtliche Funktionen nutzen.

Falls die main das Objekt der 2. Klasse überhaupt nicht braucht, dann erstelle es doch direkt in der 1. Klasse

Ob das jetzt Sinn macht oder nicht, sei mal dahingestellt

moien,

vielleicht war das zu einfach, aber ich versteh es nicht 😀.
was meinst du mit 1. und 2. klasse, was wäre das bei mir?
und hättest du vielleicht ein kurzes beispiel für mich? mir würde auch ein link zu einem tutorial reichen (da ich nicht genau weiss, welche fachwörter ich zum suchen nehmen muss, fallen die ergebnisse bei mir halt mager aus 🙁)

grüße, Andreas
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben