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, 3492 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
Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

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

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...