Guten Abend,
ich bin seit gestern unter den Hobby-Java-Programmierern ...
Ich möchte mich ein wenig mit Klassen, Vererbung und dergleichen ausprobieren. Folgende Situation:
Ein Sonnensystem soll generiert werden (erst mal nur eins, soll später auf mehrere erweitert werden)
Jedes Sonnensystem soll eine zufällige Anzahl an Planeten zugesagt bekommen.
Die Planeten erhalten verschiedene Eigenschaften, wie "Entfernung zur Sonne", "Durchschnittstemperatur", "Typ (Eis, Gas, Terranisch)" usw.
Ich habe allerdings keine Ahnung, wie man sowas vernünftig realisiert.
Eine "Planet"-Klasse konnte ich einigermaßen gut strukturieren.
Das Planetobjekt wird derzeit in meiner Main-Funktion erzeugt mittels new Planet();
Ich möchte aber gern in der Mainfunktion nur das Sonnensystem erstellen und die Planetengenerierung in die SolarSystem-Klasse verschieben. Doch dort, kann er irgendwie keine Objekte erzeugen und gibt mir immer Fehlermeldungen aus. Oder ich greife falsch darauf zu.
In Basic hätte ich beispielsweise Nur print(Solarsystem1.Planet1.sName) schreiben müssen (oder so ähnlich) um ein Ergebnis zu bekommen, hier wills nicht richtig klappen.
Main-Klasse
Planet-Klasse
SolarSystem-Klasse
Ende vom Lied:
planet1 cannot be resolved to a variable
planet1 cannot be resolved to a variable
planet1 cannot be resolved to a variable
planet2 cannot be resolved to a variable
planet2 cannot be resolved to a variable
Sofern ich dann
in die Mainschleife packe, gehts allerdings.
Was ist hier falsch?
Danke euch im Voraus.
ich bin seit gestern unter den Hobby-Java-Programmierern ...
Ich möchte mich ein wenig mit Klassen, Vererbung und dergleichen ausprobieren. Folgende Situation:
Ein Sonnensystem soll generiert werden (erst mal nur eins, soll später auf mehrere erweitert werden)
Jedes Sonnensystem soll eine zufällige Anzahl an Planeten zugesagt bekommen.
Die Planeten erhalten verschiedene Eigenschaften, wie "Entfernung zur Sonne", "Durchschnittstemperatur", "Typ (Eis, Gas, Terranisch)" usw.
Ich habe allerdings keine Ahnung, wie man sowas vernünftig realisiert.
Eine "Planet"-Klasse konnte ich einigermaßen gut strukturieren.
Das Planetobjekt wird derzeit in meiner Main-Funktion erzeugt mittels new Planet();
Ich möchte aber gern in der Mainfunktion nur das Sonnensystem erstellen und die Planetengenerierung in die SolarSystem-Klasse verschieben. Doch dort, kann er irgendwie keine Objekte erzeugen und gibt mir immer Fehlermeldungen aus. Oder ich greife falsch darauf zu.
In Basic hätte ich beispielsweise Nur print(Solarsystem1.Planet1.sName) schreiben müssen (oder so ähnlich) um ein Ergebnis zu bekommen, hier wills nicht richtig klappen.
Main-Klasse
Java:
import java.util.*;
import java.awt.*;
public class huhu
{
public static void main(String[] args)
{
SolarSystem SolarSystem1 = new SolarSystem();
// --> In SolarSystem class verschoben Planet planet1 = new Planet();
// Planet planet2 = new Planet();
System.out.println(planet1.sName);
System.out.println("Distanz: "+planet1.iDistance + " AU");
System.out.println(planet1.iTemp);
System.out.println(planet2.sName + "Distanz: "+planet2.iDistance + " AU");
}
}
Planet-Klasse
Java:
import java.util.*;
public class Planet extends SolarSystem
{
public Integer iName, // RandomNumber
iDistance, // DistanceToSun
iTemp; // Average temperature based on Distance
public String sType, // Terran, Water, Gas, Ice
sName; // Planet's Name
Planet() {
GenerateName();
GenerateDistance();
}
void GenerateName() // Wie der Name schon sagt...
{
String sAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Character cRandChar;
Random iRandom = new Random();
sName = "";
// 3 Anfangsbuchstaben ausdenken
for (int i = 0; i < 3; i++)
{
cRandChar = sAlphabet.charAt(iRandom.nextInt(sAlphabet.length()));
sName = sName + cRandChar;
}
// Und Nummern hinzufügen
sName = sName + "-" + Integer.toString(iRandom.nextInt(899)+100);
}
void GenerateDistance()
{
Random iRandom = new Random();
iDistance = iRandom.nextInt(50)+5;
}
}
SolarSystem-Klasse
Java:
public class SolarSystem
{
String sSunType;
public static void SolarSytem()
{
Planet planet1 = new Planet();
Planet planet2 = new Planet();
}
}
planet1 cannot be resolved to a variable
planet1 cannot be resolved to a variable
planet1 cannot be resolved to a variable
planet2 cannot be resolved to a variable
planet2 cannot be resolved to a variable
Sofern ich dann
Code:
Planet planet1 = new Planet();
Planet planet2 = new Planet();
Was ist hier falsch?
Danke euch im Voraus.