classen auslagern

Status
Nicht offen für weitere Antworten.

Tobiask

Mitglied
hi,

ich will meinen sortiere jetzt mit ver. classen laufen lassen

hab das main teil jetzt so gemacht:

Code:
import java.math.*;

class Sortierer {

	public Insert in;
	public Sort so;
	public Output out;

public Sortierer(int n){

	// Array mit Zufallszahlen füllen:

	in = new Insert(int this.n);
		
	// Array sortieren durch vertauschen 2er Elemente mit Hilfsvariable:
	
	so = new Sort();
	
	// Das sortierte Array ausgeben:
	
	out = new Output();
	  
}

public static void main(String args[]){

	Sortierer s = new Sortierer(15); 

}

}

was genau ist jetzt bei
Code:
in = new Insert(int this.n);
falsch?
da kommt als meldung:

Line 13: '.class' expected
und
Line 13: ')' expected

ich kann damit aber grad irgendwie nichts anfangen
hab ich die falsch miteinader 'bekanntgemacht' ?!

die klassen dazu heißen Insert etc.
so wie oben auch verlinkt ...

was is daran falsch?
 

Tobiask

Mitglied
mic_checker hat gesagt.:
vorausgesetzt es gibt den Konstruktor in Insert.

was genau meinst du mit konstruktor in insert?
hab das jetzt so gemacht wie oben und jetzt sagt er aber 'cannot find symbol variable n'


edit:
habs jetzt soweit das keine fehlermeldungen mehr kommen,
aber er gibt nichts nmehr aus ...
wie sag ich dem Sort teil dann das es das selbe array nehmen soll das durch Insert gefüllt wurde?
 

mic_checker

Top Contributor
Tobiask hat gesagt.:
mic_checker hat gesagt.:
vorausgesetzt es gibt den Konstruktor in Insert.

was genau meinst du mit konstruktor in insert?

In Insert müsste es dann in etwa so einen Konstruktor geben:

Code:
public Insert(int n) {
...
}

Das meinte ich, da er sonst den entsprechenden Konstruktor ja nicht finden kann.

hab das jetzt so gemacht wie oben und jetzt sagt er aber 'cannot find symbol variable n'

Es sieht so aus:

Code:
public Sortierer(int n){

   // Array mit Zufallszahlen füllen:

   in = new Insert(n); 
....

Und er meldet es? Oder hattest du es noch anders?
 

Tobiask

Mitglied
Hi,

es kommen jetzt keine fehlermeldungen mehr
aber er gibt nichts mehr aus,
ich denke ma weil ja jede klasse das array irgendwie nutzt aber vielleicht nicht das selbe ...

also in der ausgabe klasse ist z.b. nur das drin:

Code:
class Output {
	
	protected int num[];
	private int n;	

public Output(){
	
		for(int x=1; x<=n-1; x++){
		
		System.out.println(num[x]);	
	
	}
	
}
	
}



aufgerufen wird das so:

Code:
public Sortierer(int n){

	// Array mit Zufallszahlen füllen:

	in = new Insert(n);
		
	// Array sortieren (durch vertauschen 2er Elemente und Hilfsvariable):
	
	so = new Sort();
	
	// Das sortierte Array ausgeben:
	
	out = new Output();
	  
}

woher soll der jetzt wissen das in dem array ja was drin is,
oder versteh ich das ganz falsch?
wie muss ich das übergebnen?
 

mic_checker

Top Contributor
Der Fehler liegt wohl hier:

Code:
for(int x=1; x<=n-1; x++){

Welchen Wert hat dein n? Setzt du den Wert über irgendeine set Methode ? Lass dir den Wert mal ausgeben (System.out.println...).

Ansonsten musst du den Wert über Konstruktor oder set Methode setzen, weil n ja mit 0 belegt wird und er nicht in die schleife geht.
 

Tobiask

Mitglied
mic_checker hat gesagt.:
Der Fehler liegt wohl hier:

Code:
for(int x=1; x<=n-1; x++){

Welchen Wert hat dein n? Setzt du den Wert über irgendeine set Methode ? Lass dir den Wert mal ausgeben (System.out.println...).

Ansonsten musst du den Wert über Konstruktor oder set Methode setzen, weil n ja mit 0 belegt wird und er nicht in die schleife geht.

n wird in der main methode gesetzt (im beispiel wert 15):

Code:
public static void main(String args[]){

	Sortierer s = new Sortierer(15); 

}

und dann halt:

Code:
public Sortierer(int n){

	// Array mit Zufallszahlen füllen:

	in = new Insert(n);
		
	// Array sortieren (durch vertauschen 2er Elemente und Hilfsvariable):
	
	so = new Sort();
	
	// Das sortierte Array ausgeben:
	
	out = new Output();
	  
}


die ausgabe von n ergibt:
0

also liegt da wohl der fehler
wie setz ich den wert über den konstruktor denn dann?


edit:ah, jetzt hab ich das geschafft, die 15 wird übergeben und auch ausgegeben
nur kommt jetzt immer eine NullPointerException in Sort.java in Zeile 13:
Code:
class Sort {
	
	private int helper;
	private int n;
	protected int num[];
	
public Sort(int n){

	for(int x=0; x<n*n; x++){
		
		for(int y=1; y<=n-1; y++){ 
  		
			if(num[y-1] > num[y]){
		
			helper = num[y-1];
			num[y-1] = num[y];
			num[y] = helper;
					
			}

		}
	
	}	
	
}	
	
}

woran liegt das?
das n wird da jetzt auch hinübergeben:

Code:
public Sortierer(int n){

	// Array mit Zufallszahlen füllen:

	in = new Insert(n);
		
	// Array sortieren (durch vertauschen 2er Elemente und Hilfsvariable):
	
	so = new Sort(n);
	
	// Das sortierte Array ausgeben:
	
	out = new Output(n);
	  
}
 

mic_checker

Top Contributor
Du setzt den Wert in main, aber davon weiss Output ja nichts.

Du kannst es so machen:

Code:
public Output(int n){ 
this.n = n;
...
}

Aufruf in Sortierer:

Code:
public Sortierer(int n){
.....   
   out = new Output(n);    
}

So sollte es klappen.
 

Tobiask

Mitglied
mic_checker hat gesagt.:
Du setzt den Wert in main, aber davon weiss Output ja nichts.

Du kannst es so machen:

Code:
public Output(int n){ 
this.n = n;
...
}

Aufruf in Sortierer:

Code:
public Sortierer(int n){
.....   
   out = new Output(n);    
}

So sollte es klappen.

ja, das klappt jetzt!
sdogar auch ohne das this.n = n;

aber hab meinen letzten thtread grad editiert, lies das bitte nocheinmal, was jetzt unten steht!
 

mic_checker

Top Contributor
Hab den Edit gerad erst gesehen (oder hast du das nach meinem Post eingefügt ?).

Du musst dem Array noch die Dimensionen mitteilen, also wie groß es sein soll.

Code:
public Sort(int n){ 
num = new int[n];
...
}

Falls n die Größe des Arrays angeben soll....
 

Tobiask

Mitglied
mic_checker hat gesagt.:
Hab den Edit gerad erst gesehen (oder hast du das nach meinem Post eingefügt ?).

Du musst dem Array noch die Dimensionen mitteilen, also wie groß es sein soll.

Code:
public Sort(int n){ 
num = new int[n];
...
}

Falls n die Größe des Arrays angeben soll....

ja, das soll die größe angeben!
hab ich jetzt auch gemacht.

jetzt gibt er zwar zahlen aus, aber nur 0 ...
weil er das array in output,java anscheidn net kennt ...
wie kann ich ihm sagen das es das ich was vorher gefüllt wurde und sortiert wurde
das soll er ja ausgeben!
 

mic_checker

Top Contributor
Er gibt nur Nullen aus, weil er die Werte in einem int Array standardmäßig mit 0 belegt, insofern du sie nicht anders setzt (was nicht der Fall ist).
Du könntest das Array über Konstruktor oder setMethode an Output weitergeben, sollte ja jetzt kein Problem mehr sein oder?
 

Tobiask

Mitglied
mic_checker hat gesagt.:
Er gibt nur Nullen aus, weil er die Werte in einem int Array standardmäßig mit 0 belegt, insofern du sie nicht anders setzt (was nicht der Fall ist).
Du könntest das Array über Konstruktor oder setMethode an Output weitergeben, sollte ja jetzt kein Problem mehr sein oder?

hm, wo genau muss das dann hin?
muss ich das array in der hauptklasse mit übergeben oder wie genau?
und woher weiß er dann das es genau das ist was vorher durch die insert klasse gefüllt wurde?!

kannste mir dazu bitte nen beispiel geben ;)
 

mic_checker

Top Contributor
Du übergibst dem Konstruktor ein int Array:

Code:
public Output(int n,int[] feld){
this.n = n;
...
}

Da wo die Pünktchen sind bist du jetzt gefragt ;)

Aufruf:

Code:
public Sort(int n){ 
//for Schleife etc.
out = new Output(n,num);
....

Ansonsten, poste doch bitte mal den aktuellen , kompletten Code, damit man weiss auf welchem Stand der Dinge du jetzt bist.
 

Tobiask

Mitglied
okay, hab ich jetzt so gemacht!
aber er gibt immernoch nur Nullen aus :/

Komplettes Script:

Sortierer.java:
Code:
class Sortierer {

	public Insert in;

public Sortierer(int n){

	// Array mit Zufallszahlen füllen:

	in = new Insert(n);
	  
}

public static void main(String args[]){

	Sortierer s = new Sortierer(15); 

}

}


Insert.java:
Code:
import java.math.*;

class Insert {
	
	protected int num[];
	protected int rand;
	public Sort so;	
	
public Insert(int n){
	
	num = new int[n];

	for(int i=0; i<=n-1; i++){

		rand = (int)Math.round(Math.random()*100);
		num[i] = rand;
		
	}
	
	so = new Sort(n,num);		

}
	
}

Sort.java:
Code:
class Sort {
	
	private int helper;
	private int n;
	protected int num[];
	public Output out;	
	
public Sort(int n,int num[]){
	
	this.n = n;
	
	num = new int[n];
	
	for(int x=0; x<n*n; x++){
		
		for(int y=1; y<=n-1; y++){ 
  		
			if(num[y-1] > num[y]){
		
			helper = num[y-1];
			num[y-1] = num[y];
			num[y] = helper;
					
			}

		}
	
	}
	
	out = new Output(n,num);	
	
}	
	
}

Output.java:
Code:
class Output {
	
	protected int num[];
	private int n;	

public Output(int n,int num[]){
	
		this.n = n;
		
		num = new int[n];		
	
		for(int x=1; x<=n-1; x++){
		
		System.out.println(num[x]);	
	
		}
	
}
	
}


so, das ist alles, wo liegt da jetzt noch der fehler?
 

mic_checker

Top Contributor
In Sort und Output brauchst du die Arrays nicht mehr deklarieren.

Code:
class Sort {
   
   private int helper;
   private int n;
   public Output out;   
   
public Sort(int n,int num[]){
   
   this.n = n;
   
   for(int x=0; x<n*n; x++){
      
      for(int y=1; y<=n-1; y++){
        
         if(num[y-1] > num[y]){
      
         helper = num[y-1];
         num[y-1] = num[y];
         num[y] = helper;
               
         }

      }
   
   }
   
   out = new Output(n,num);   
   
}   
   
}

Code:
class Output {   
	public Output(int n,int num[]) {    
      for(int x=1; x<num.length; x++)      
      	System.out.println(num[x]);     
	}   
}

sollte so stimmen, hab größtenteils nur die array deklarationen raus genommen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Java Classen ordnen Java Basics - Anfänger-Themen 4
A Import anderer Classen aus anderen Projekten Java Basics - Anfänger-Themen 6
MiMa Aufteilen in Classen Java Basics - Anfänger-Themen 5
S Richtlinien wie man Classen in Packages organisieren soll? Java Basics - Anfänger-Themen 3
M zugang zu anderen classen und Jframes Java Basics - Anfänger-Themen 3
D arraydaten zwischen classen übertragen Java Basics - Anfänger-Themen 8
H2SO3- sichtbarkeit con classen und functionen Java Basics - Anfänger-Themen 8
H2SO3- weggabel für classen Java Basics - Anfänger-Themen 13
G interne classen extern benutzen Java Basics - Anfänger-Themen 14
W Auf mehrere Classen zugreifen Java Basics - Anfänger-Themen 5
Q Frage zu Classen und Objektenerzeugung Java Basics - Anfänger-Themen 4
M "Partial" classen Java Basics - Anfänger-Themen 25
J Notwendige Classen ins JAR packen? Java Basics - Anfänger-Themen 7
L In metoden/classen aufteilen (weniger im main) Java Basics - Anfänger-Themen 17
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
T Auslagern von Methoden bei einem JFrame Java Basics - Anfänger-Themen 6
S Funktion in Klasse auslagern Java Basics - Anfänger-Themen 4
N Methode auslagern mal wieder Java Basics - Anfänger-Themen 8
R KeyListener auslagern Java Basics - Anfänger-Themen 3
J Threads Prozess in Thread auslagern Java Basics - Anfänger-Themen 2
B Erste Schritte JFrame in Klasse auslagern Java Basics - Anfänger-Themen 4
K Erste Schritte jpanel in einer klasse auslagern Java Basics - Anfänger-Themen 3
K Exceptions auslagern Java Basics - Anfänger-Themen 15
K Vererbung Methoden in klassen auslagern und in mehreren Klassen verfügbar machen Java Basics - Anfänger-Themen 8
A Objekte in eigene Klasse auslagern Java Basics - Anfänger-Themen 2
D Programmteile in Klassen auslagern Java Basics - Anfänger-Themen 2
M MVC - gui auslagern Java Basics - Anfänger-Themen 2
K JPanel auslagern Java Basics - Anfänger-Themen 9
M Vererbung Auslagern von UI AbstractAction? Java Basics - Anfänger-Themen 2
D Codezeilen "auslagern" Java Basics - Anfänger-Themen 4
T ActionListener auslagern Java Basics - Anfänger-Themen 14
E OOP Methoden auslagern Java Basics - Anfänger-Themen 9
F Klasse bzw Objekt in eigenen Thread auslagern Java Basics - Anfänger-Themen 3
W Eventhandling auslagern Java Basics - Anfänger-Themen 4
M Java Objekte auf Platte auslagern. Java Basics - Anfänger-Themen 8
S Bild aus paint() Methode auslagern Java Basics - Anfänger-Themen 14
MrMilti einzelne Methoden einer Klasse auslagern Java Basics - Anfänger-Themen 6
K SQL Statement formatieren + Swingzeug auslagern Java Basics - Anfänger-Themen 18
I Listenerklassen in externe Dateien auslagern? Java Basics - Anfänger-Themen 7
S Icons in Icon-Odner auslagern Java Basics - Anfänger-Themen 2
S auslagern von Methoden in andere Klasse Java Basics - Anfänger-Themen 4
T Operation in Thread auslagern? Java Basics - Anfänger-Themen 7
N Mehrfach von Klassen benutze Methode in Interface auslagern? Java Basics - Anfänger-Themen 3
G Mtehoden auslagern Java Basics - Anfänger-Themen 10
P Thread auslagern Java Basics - Anfänger-Themen 4
G Daten auslagern? Java Basics - Anfänger-Themen 7
P class in neuen Thread auslagern Java Basics - Anfänger-Themen 3
G Zeichenklasse auslagern Java Basics - Anfänger-Themen 5
F FileChooser auslagern Java Basics - Anfänger-Themen 2
N Methode auslagern Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben