Search⌘ K
AI Features

Solution: Planetary Physics with Enums

Explore how to use Java Enums to represent planets with immutable properties. Understand constructing enums with parameters, implementing methods for calculating surface gravity and weight, and effectively combining object-oriented principles to build maintainable code.

We'll cover the following...
Java 25
public class PlanetarySystem {
public enum Planet {
MERCURY(3.303e+23, 2.4397e6),
EARTH(5.976e+24, 6.37814e6),
JUPITER(1.9e+27, 7.1492e7);
private final double mass; // in kilograms
private final double radius; // in meters
// Universal Gravitational Constant
public static final double G = 6.67300E-11;
// Constructor
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
// Calculate surface gravity (g)
public double surfaceGravity() {
return (G * mass) / (radius * radius);
}
// Calculate weight (Force = mass * g)
public double surfaceWeight(double otherMass) {
return otherMass * surfaceGravity();
}
}
public static void main(String[] args) {
double roverMass = 100.0; // kg
System.out.println("Rover Mass: " + roverMass + "kg");
System.out.println();
for (Planet p : Planet.values()) {
System.out.println("Weight on " + p + ": " + p.surfaceWeight(roverMass) + " N");
}
}
}
...