Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 3481 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Virtualisierung
gelöst Interne Netzwerke untereinander kommunizieren lassen (9)

Frage von chelewae zum Thema Virtualisierung ...

Microsoft Office
gelöst Einträge untereinander Auflisten (8)

Frage von batchnewbie zum Thema Microsoft Office ...

Windows 10
Windows 10 Updates sollen kleiner werden (4)

Link von Looser27 zum Thema Windows 10 ...

Windows Userverwaltung
PS Skript AD Objekte auslesen (1)

Frage von m.reeger zum Thema Windows Userverwaltung ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (22)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

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

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...