# Klassen verbinden



## CM_Punk (4. September 2013)

Hallo liebe Foren-Gemeinde,

ich bin neu hier, Java-Anfänger und habe eine Frage.

Wie verbindet man zwei Klassen miteinander ? 

Ausgangssituation: 

Ich habe zwei Klassen. Die eine Klasse (Parameter) überprüft die Parameter-Werte die angegeben werden, sprich ob die Werte zulässig sind oder nicht und noch andere Bedingungen. Die andere Klasse (Waagensimulation) soll nun die Parameter-Klasse einbinden und ausführen.
Wie macht man das ?

Ich wäre sehr dankbar, wenn mir jemand weiterhelfen würde !


----------



## ComFreek (4. September 2013)

Hallo und willkommen im Forum!

Hast du statische Methoden der Parameterklasse, die du aufrufen möchtest, oder möchtest du ein Objekt instanziieren?

So erstellst du z.B. ein Objekt:

```
// in einer Methode der anderen Klasse
ParameterClass param = new ParameterClass();
param.doSomething();
```


----------



## CM_Punk (5. September 2013)

Hallo und danke für den Willkommens-Gruß ! 

Ich möchte, dass meine Waagensimulations-Klasse über die main-Methode die main-Methode der Parameter-Klasse ausführt. Ich weiß, dass es nur eine main-Methode geben kann (die der Waagensimulation in meinem Fall natürlich), aber ich frage mich, wie genau das geht.. also wie genau man das ganze Parameter-Programm über die Waagensimulations-Klasse ausführen lassen kann.

Ich hoffe, du verstehst mein Problem


----------



## vfl_freak (5. September 2013)

Moin,

nicht jede Klasse Deines Programm braucht eine eigene main()-Methode !
Erstelle von der zweiten Klasse an der benötigen Stelle einfach so ein entsprechendes Objekt, wie von ComFreek beschrieben!

Poste ggf. den gesamten relevanten Code !

Gruß
Klaus


----------



## CM_Punk (5. September 2013)

So fängt meine Parameter-Klasse an:

```
import java.io.*;
import java.lang.*;
import java.util.*;

public class Parameter {
 
 public static void main(String[]args) {

// Code

}
```
Und so meine Waagensimulations-Klasse, welche die Parameter-Klasse einbinden soll:

```
import java.io.*;
import java.lang.*;
import java.util.*;


public class Waagensimulation {

	public static void main(String[]args){
	
	
	Parameter a = new Parameter();
	}
	}
```


----------



## vfl_freak (5. September 2013)

Moin,

wozu brauchst Du denn die *main* in der Klasse *Parameter* ?
Soll die auch stand-alone laufen ?
Wozu überhaupt zwei derartige Klassen ?

Was Du brauchst ist ein Konstruktor in *Parameter*
Dies sollte doch reichen :

```
public class Parameter {

public static void Parameter( )
{
        // Code
}
```

Den kannst Du dann so aufrufen !

Gruß
Klaus


----------



## CM_Punk (5. September 2013)

Also jetzt wird meine Klasse "Waagensimulation" korrekt kompiliert, aber führt die Parameter-Klasse nicht aus.

Waagensimulations-Klasse:

```
public class Waagensimulation {

	public static void main(String[]args){
	
	
	Parameter a = new Parameter();
	}
	}
```

Parameter-Klasse:

```
import java.io.*;
import java.lang.*;
import java.util.*;

public class Parameter {
 
 public static void Parameter(String[]args){

//Code 

}
```


----------



## vfl_freak (5. September 2013)

wie auch, Du hast dort immer noch nur Deine *main* und keine Metheode, die mit *new* abgesprochen werden könnte ....

Hast Du meinen vorherigen Post überhaupt gelesen ****?


----------



## ComFreek (5. September 2013)

Ich habe dir erstmal alles in [code=java]-Codetags gepackt. Jetzt ist es einigermaßen leserlich, wieso packst du die geschweiften Klammern nicht die gescheiten Stellen?

Was soll das hier?

```
public static void Parameter(String[]args){}
```

Beim Instanziieren einer Klasse wird dessen Konstruktor aufgerufen.

Wie soll denn bei deinem Code jemals die statische Methode Parameter() aufgerufen werden? Steht das irgendwo? Nein, also macht's der Computer auch nicht.


----------



## CM_Punk (5. September 2013)

Also hab's jetzt so verstanden, aber geht irgendwie nicht..

```
public class Waagensimulation {

	public static void main(String[]args){
	
	
	Parameter a = new Parameter();
	a.Parameter();
	}
	}
```
(Sorry, wenn ich etwas schwer von Begriff bin, hoffe es nervt nicht zu sehr ! :S)


----------



## sheel (5. September 2013)

Hi


```
a.Parameter();
```
muss weg.
Man kann zwar Methoden so aufrufen, und vllt. willst du das sogar auch,
aber die sollte nicht so wie der Konstruktor heißen.

Und beim oberen Code:

```
public static void Parameter(String[]args)
```
muss "static" und "String[]args" weg.
Zumindest, damit du es so wie um letzten Code aufrufen kannst.

Übrigens, ich hab Verständnis dafür, vom korrekten Umgang mit dem (noch) keine Ahnung zu haben.
Aber tu dir den Gefallen und lern das möglichst bald, und zwar gründlich (Buch oder so)
Falsch einlernen bei solchen grundlegenen Sachen unbedingt vermeiden.

PS: Bitte Codetags verwenden.


----------



## ComFreek (5. September 2013)

CM_Punk hat gesagt.:


> (Sorry, wenn ich etwas schwer von Begriff bin, hoffe es nervt nicht zu sehr ! :S)


Wenn du das nächste Mal beachten würdest, was ich sage, wäre ich dir sehr dankbar 


			
				ComFreek hat gesagt.:
			
		

> Ich habe dir erstmal alles in [code=java]-Codetags gepackt.


[code=java]Jetzt dein Code...[/code]


----------

