28. november 2003 - 01:53 
												Der er
									7  kommentarer													og 					1  løsning									 
									
		 
		
			
Få fat i den klasse der opretter et objekt inde fra objektet 
			Hejsa Jeg har lavet en klasse A og en klasse B. B opretter X instanser af A. Nu vil jeg gerne vide om der er en let måde at komme inde fra en metode i A og kalde en metode i B. Har overvejet at sende en pointer med i constructoren ... men vil gerne vide om der er en letere måde ?
					
		
	 
                            
Annonceindlæg fra NetNordic 
 
 
	
		
								
					
				28. november 2003 - 02:29  
				#1 
						
		 
		
			øøh...er ikke sikker på jeg helt forstår hvad du mener? men prøver nu alligevel... B nyInstans = new B(); nyInstans.metodenDuVilKaldeIBKlassen(); Hvis du vil sende den pågældende instans af klasen A til klasse B...skal du skriv følgende : Klasse B; public dinKonstruktørIKlasseA() { B = new dinKonstruktørIKlasseB(this); } Håber det kan hjælpe dig lidt?? mvh. PabloPablo
		
		
	 
	
		
								
					
				28. november 2003 - 02:38  
				#2 
						
		 
		
			Sorry min forklaring er måske lidt vag.... så her er et eksempel. class A { minMetode() { B.bMetode(); } } class B { bMetode() { ..... } B() { A a = new A(); } } Hele pointen er at minMetode i A skal kunne benytte sig af bMetode der ligger i klasse B. hvis det er det du har vist mig PabloPablo må du lige svare igen ;)
		
		
	 
	
		
								
					
				28. november 2003 - 03:28  
				#3 
			 				 
						
		 
		
			hvis din metode i B er statisk er der slet ikke noget problem. du bruger blot klassenavnet foran metodens navn (som i dit eksempel) class A { minMetode() { B.bMetode(); }     // du mangler en returtype her } class B { stativ void bMetode() { ..... } // tilføjet static B() { A a = new A(); } }
		
		
	 
	
		
								
					
				28. november 2003 - 03:30  
				#4 
			 				 
						
		 
		
			og så staver jeg galt  (det skal være static. ikke stativ) static void bMetode() { ..... } // tilføjet static
		
		
	 
	
		
								
					
				28. november 2003 - 03:45  
				#5 
						
		 
		
			Det har du da fuld stændig ret i ... det er lidt en workaround, men de virker jo også. Tak Jacoba ... hvis du vil have point skal du lige svare ;)
		
		
	 
	
	
	
		
								
					
				28. november 2003 - 03:52  
				#6 
			 				 
						
		 
		
			ok
		
		
	 
	
		
								
					
				28. november 2003 - 10:06  
				#7 
						
		 
		
			Og hvis den ikke må være static, må du sende en "this" reference med når du opretter objektet: A a = new A(this); Og så skal constructoren i A se cirka sådan her ud: B bRef; public A(B bRef){    bRef = this.bRef; } Herefter kan du kalde metoden bRef.bMetode() fra A klassen.
		
		
	 
	
		
								
					
				28. november 2003 - 10:09  
				#8 
						
		 
		
			Ups, det skal være: this.bRef = bRef; Ikke omvendt :)
		
		
	 
	
		
	
		
		
		
			
			Kurser inden for grundlæggende programmering