Die Mathe-Redaktion - 19.06.2013 17:49
Auswahl
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]

Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden oder den Newsletter bestellen.

Der Newsletter Juni 2013

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 548 Gäste und 49 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmiersprachen » Java Methoden aus anderer Klasse
Druckversion
Druckversion
Autor
Universität/Hochschule J Java Methoden aus anderer Klasse
Fontana
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 15.11.2008
Mitteilungen: 236
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2012-07-13 13:01


Hallo zusammen,

ich versuche eine Methode auf eine von mir erstellte Klasse anzuwenden, die Methode funktioniert aber nur mit bestimmten vordefinierten Klassen. Mein Pseudo-Minimalbeispiel zur Verdeutlichung (Anm: es ist nicht lauffähig):


Die Hauptklasse:
Java
  1. public class Model {
  2. public static void main(String[] args) {
  3. Space world = new Space(1, 1);
  4.  
  5. }
  6. }
  7.  
Java
  1. public class Agent {
  2.  
  3. private Space world;
  4. private Object2DGrid grid;
  5. private Vector myNeighborhood;
  6.  
  7. public void step(){
  8.  
  9.  
  10. myNeighborhood = grid.getMooreNeighbors(newX, newY, 2, 2, false);//
  11. dies funktioniert,
  12. weil das Objekt 'grid' vom Typ Objekt2DGrid ist.
  13.  
  14. myNeighborhood = world.getVonNeumannNeighbors(newX, newY, 2, 2, false);//
  15. diese Zeile funktioniert nicht, weil das Objekt 'world' (aus der Klasse 'Space')
  16. nicht über die Methode 'getvonNeumannNeighbors' verfügt.
  17.  
  18. }
  19.  
  20. }
  21.  
Java
  1. public class Space {
  2.  
  3. //mein Konstruktor für die Klasse
  4. public Space(int xSize, int ySize){
  5.  
  6. jobSpace = new Object2DGrid(xSize, ySize);
  7.  
  8. agentSpace = new Object2DGrid(xSize, ySize);
  9.  
  10. firmSpace = new Object2DGrid(xSize, ySize);
  11.  
  12.  
  13. for(int i = 0; i < xSize; i++){
  14. for(int j = 0; j < ySize; j++){
  15. jobSpace.putObjectAt(i,j,new Integer(0));
  16. }
  17. }
  18.  
  19. }
  20.  
  21. }
Java
  1. public class Firm {
  2. int ID;
  3. int reqSkills;
  4. public Firm (int i, int reqSkills){
  5. ID = i;
  6. }
  7.  
  8.  
  9.  
  10.  
Meine Konstruktor für 'Space' besteht aus den benötigten Object2DGrids,
gibt es daher vielleicht eine Möglichkeit, die Methode trotzdem anzuwenden, obwohl sie nur auf Objekte der Art Object2DGrid anwendbar ist (also indirekt quasi)? Kann man sie vielleicht extrahieren und per Copy and Pace in meine Klasse Space einfügen?

Vielen Dank im Voraus für eure Hilfe.

Fontana

[ Nachricht wurde editiert von Fontana am 13.07.2012 13:08:55 ]



  Profil  Quote  Link auf diesen Beitrag Link
Skrodde
Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 22.12.2008
Mitteilungen: 114
Aus: Gelsenkirchen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2012-07-13 13:28


Hallo Fontana,
Wenn die Methode mit deiner Klasse Space nicht funktioniert, sondern nur mit Feldern deiner Klasse, dann gib doch Space eine Methode mit, die dann wiederum nur die Methode mit einem seiner Felder aufruft, für welches die ursprüngliche Methode definiert ist.



  Profil  Quote  Link auf diesen Beitrag Link
Fontana
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 15.11.2008
Mitteilungen: 236
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2012-07-13 14:33


Klasse Idee, daran habe ich gar nicht gedacht, hat direkt funktioniert.

Ich habe alternativ dazu auch mal probiert, eine get Methode in die 'Space' Klasse einzufügen, die die Felder der Klasse "returned". Auch das hat geklappt und müsste ja eigentlich das identische Ergebnis liefern.

Vielen Dank für die schnelle Hilfe Skrodde!!



  Profil  Quote  Link auf diesen Beitrag Link
Fontana
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 15.11.2008
Mitteilungen: 236
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2012-07-13 14:44


Habe beide Varianten gerade mit System.out.print überprüft und sie liefern, tatsächlich das gleiche Ergebnis, vielen Dank noch einmal.



  Profil  Quote  Link auf diesen Beitrag Link
Fontana hat die Antworten auf ihre/seine Frage gesehen.
Fontana hat selbst das Ok-Häkchen gesetzt.
Bewerte diesen Thread:
[Was sonst bewertet wurde]
 Neues Thema [Neues Thema]

 Druckversion [Druckversion]


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2013 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]