Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zwei Objekte sollen untereinander etwas austauschen, doch wie?

Frage Entwicklung Java

Mitglied: Sokrates

Sokrates (Level 1) - Jetzt verbinden

05.09.2009, aktualisiert 20:05 Uhr, 3508 Aufrufe, 3 Kommentare, 1 Danke

Hallo,

wenn ich beispielsweise einmal Spieler-1 und Spieler-2 habe und der erste Spieler dem 2. etwas soll (Spieler ist hier einfach nur eine Variable), beispielsweise "Geld".
Wie kann man das noch eleganter hinbekommen?
Das hier ist der einfache Weg mit zwei verschiedenen Variablen. Wie geht das gleiche, nur mit Arrays?

01.
y = 500; 
02.
Spieler-1_Geld = 2000; 
03.
Spieler-2_Geld = 800; 
04.
Spieler-1_Geld = Spieler-1_Geld  - y; 
05.
Spieler-2_Geld = Spieler-2_Geld -+ y;


Wie "tauschen" Arrays untereinander solche Daten?

X
Mitglied: holohype
06.09.2009 um 00:56 Uhr
Der Algorythmus wurde an die Angaben angepasst.

01.
// Algorythmus 
02.
y = 500;  
03.
Spieler-1_Geld = 2000;  
04.
Spieler-2_Geld = 800; 
05.
//Geldtransfair Spieler_2 nach Spieler_1   
06.
Spieler-1_Geld  + y; 
07.
Spieler-2_Geld  - y; 
08.
//Geldtransfair Spieler_1 nach Spieler_2 
09.
Spieler-2_Geld  + y; 
10.
Spieler-1_Geld  - y;
Objektorientierter Ansatz.
Die Notwendigkeit in solchen Objekte mit Kapselung zu arbeiten, bleibt hier unberücksichtigt.

01.
/** 
02.
 * @author holohype 
03.
 * http://www.HoloH.de 
04.
 */ 
05.
public class Spieler 
06.
07.
  // Default Tasche lehr 
08.
  public float  geld = 0; 
09.
   
10.
  // Lehrconstructor 
11.
   public Spieler ( ) 
12.
13.
14.
   
15.
  // Konstruktor mit Parameter für Geldwert g 
16.
  public Spieler  
17.
  (  
18.
    float g 
19.
20.
21.
    // Zuweisung des Geldwert an dieses Objekt 
22.
    this.geld = g;   
23.
24.
   
25.
  // Geldübergabe zwischen 2 Spielern 
26.
  // Spieler s gibt geld g  
27.
  public void bezahleMir  
28.
  (  
29.
    Spieler s, 
30.
    float g 
31.
32.
33.
    this.geld = this.geld + g;        
34.
    s.geld = s.geld - g; 
35.
36.
   
37.
  /* 
38.
  * Die Methode wird mit Run ausgeführt. 
39.
  *  Sie dient ausschließlich Demonstrationszwecken 
40.
  */ 
41.
  public static void main  
42.
  (  
43.
    String [] args  
44.
45.
46.
    float y = 500;  
47.
    Spieler spieler_1 = new Spieler ( 2000 ); 
48.
    Spieler spieler_2 = new Spieler (  800  ); 
49.
    // Werte ausgeben 
50.
    System.out.print   ( " spieler_1 hat "  ); 
51.
    System.out.print   ( spieler_1.geld ); 
52.
    System.out.print   ( " spieler_2 hat "  ); 
53.
    System.out.println ( spieler_2.geld ); 
54.
     
55.
    //Geldtransfair von spieler_1 nach spieler_2 
56.
    spieler_1.bezahleMir ( spieler_2, y ); 
57.
    System.out.print    ( " spieler_1 hat  "  ); 
58.
    System.out.print    ( spieler_1.geld );  
59.
    System.out.print    ( " spieler_2 hat  "  ); 
60.
    System.out.println ( spieler_2.geld );     
61.
 
62.
    //Geldtransfair von spieler_2 nach spieler_1 
63.
    spieler_2.bezahleMir ( spieler_1, y ); 
64.
    System.out.print    ( " spieler_1 hat  "  ); 
65.
    System.out.print    ( spieler_1.geld );     
66.
    System.out.print    ( " spieler_2 hat  "  ); 
67.
    System.out.println ( spieler_2.geld );  
68.
         
69.
  } // public static void main ( ... ) 
70.
        
71.
} // public class Spieler
Ausgabe:

spieler_1 hat 2000.0 spieler_2 hat 800.0
spieler_1 hat 2500.0 spieler_2 hat 300.0
spieler_1 hat 2000.0 spieler_2 hat 800.0

Bei Arrays ist der Datentyp geld und die Methode bezahleMir anzupassen.

Ein Array kann in Java für einfache typen (float, int...) in der Form;
01.
float[] geld = new float{5];
erzeugt werden.

5 ist die Anzahl der Elemente im Array, float ist der Datentyp, in diesem Fall eine Gleitkommazahl.

Java hat auch Klassen die Arrays verwalten. Diese kan man genauso, wie oben spieler, erzeugen.
Hier kann man sehr komfortabel die Elmente über die Methoden der Klasse handeln.
Dieses währe in der Class Spieler zu definieren.
Bitte warten ..
Mitglied: Sokrates
06.09.2009 um 10:57 Uhr
Danke erstmal.
Ich werd es später mal ausprobieren und sag dann Bescheid, wie es ist

X
Bitte warten ..
Mitglied: Sokrates
25.09.2009 um 21:01 Uhr
Funktioniert einwandfrei.
Vielen Dank

X
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Einträge untereinander Auflisten (8)

Frage von batchnewbie zum Thema Microsoft Office ...

LAN, WAN, Wireless
Sind alle Dell powerconnect switche untereinander kompatibel (2)

Frage von helldunkel zum Thema LAN, WAN, Wireless ...

Virtualisierung
gelöst Interne Netzwerke untereinander kommunizieren lassen (9)

Frage von chelewae zum Thema Virtualisierung ...

PHP
Schnellste Auswahl in Objekten (1)

Frage von it4baer zum Thema PHP ...

Neue Wissensbeiträge
Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Viren und Trojaner

FinFisher: Internetprovider schieben Spitzelopfern Malware unter

(1)

Information von kaiand1 zum Thema Viren und Trojaner ...

Humor (lol)

Wo ist der Fehler auf dem Bild?

(17)

Information von the-buccaneer zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows 7
SSD - Win7 Lags (14)

Frage von ph5555 zum Thema Windows 7 ...